我理解问题解决方案背后的逻辑,但在编码解决方案中,我最后对返回语句感到有点困惑。请向我解释它的意义是什么,为什么要使用,等等?(不是为什么使用返回,而是为什么返回该值)。
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;
}
}
}发布于 2022-03-19 06:24:09
因此,要理解返回语句的逻辑,让我们取2个数字
所以这里循环做的一件事是从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中的数字。
https://stackoverflow.com/questions/71535664
复制相似问题