Java 回文数
我必须确定一个整数在JAVA中是否是回文。我需要帮助理解为什么我编写的代码返回的时间超过了Java 回文数,java,Java,我必须确定一个整数在JAVA中是否是回文。我需要帮助理解为什么我编写的代码返回的时间超过了限制 class Solution { public boolean isPalindrome(int x) { int reverse = 0; int remainder = 0; int originalX = x; boolean isPalindrome = false; while(x >=1)
限制
class Solution {
public boolean isPalindrome(int x) {
int reverse = 0;
int remainder = 0;
int originalX = x;
boolean isPalindrome = false;
while(x >=1)
{
remainder = x % 10;
reverse = reverse * 10 + remainder;
remainder = x / 10;
}
if (reverse == originalX){
isPalindrome = true;
}
return isPalindrome;
}
}
检查整数是否为回文的另一种可能更简单的方法是,首先将整数转换为字符串,制作字符串的“反向”副本,然后测试它是否与原始字符串相等 类似(完全未经测试,甚至未编译…)
尝试使用x=x/10而不是余数=x/10,以便修改x。x的值在代码中没有修改这里有一些经过修改和测试的代码
public boolean isPalindrome(int x)
{
int reverse = 0;
int remainder = 0;
int originalX = x;
while (x > 0)
{
remainder = x % 10;
reverse = reverse * 10 + remainder;
x = x / 10;
}
return (reverse == originalX);
}
您没有更改x的值,因此条件
x>=1
将始终为真,这意味着循环将一直运行到时间结束(或有人关闭计算机)。问题在于“余数=x/10;”应该是“x=x/10;”@ManojBanik Yes!!我应该用X而不是余数!非常感谢。
public boolean isPalindrome(int x)
{
int reverse = 0;
int remainder = 0;
int originalX = x;
while (x > 0)
{
remainder = x % 10;
reverse = reverse * 10 + remainder;
x = x / 10;
}
return (reverse == originalX);
}