首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试图解决一个Leetcode问题,关于识别输入的数字是否为回文。

我试图解决一个Leetcode问题,关于识别输入的数字是否为回文。
EN

Stack Overflow用户
提问于 2022-03-19 05:37:10
回答 1查看 72关注 0票数 -1

我理解问题解决方案背后的逻辑,但在编码解决方案中,我最后对返回语句感到有点困惑。请向我解释它的意义是什么,为什么要使用,等等?(不是为什么使用返回,而是为什么返回该值)。

代码语言:javascript
复制
class Solution {
public boolean isPalindrome(int x) {
    // 2 cases  x < 0 = false case 
    //  x > 0 = test case
    
    if (x < 0 || x % 10 == 0 && x != 0){
        return false;
    }
    else {
        int newNum = 0;
        while (x > newNum){
        int r = (x % 10);
        newNum = newNum * 10 + r;
        x /= 10;
        }
    //the part I am confused about - below     
    return x == newNum || x == newNum / 10;
    }
   
    }  
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-19 06:24:09

因此,要理解返回语句的逻辑,让我们取2个数字

  1. 1234321
  2. 678876

所以这里循环做的一件事是从X中创建一个新的数字( newNum ),并确保newNum将X的反向存储到中间点。

因此,对于1234321,这个while循环将执行到X=123和newNum=1234。

在使用这些值退出while循环之后,在返回的2条语句中,x == newNum / 10将给出真正的结果,因此返回语句将返回true.which表示数字是回文。

,请注意这里的“否”。给定整数中的数字是奇数(7)

现在让我们以另一个例子678876为例

在这种情况下,当while循环结束时,X的值为678,newNum为678。

在返回的2条语句中,x == newNum将给出真结果,因此返回语句将再次返回true,.which表示数字是回文。

,请注意这里的“否”。给定整数中的数字为偶数(6)

总之,这个语句返回x == newNum x x == newNum / 10;是为了确保包括了奇数和零的条件。给定整数X中的数字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71535664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档