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)

我必须确定一个整数在JAVA中是否是回文。我需要帮助理解为什么我编写的代码返回的时间超过了
限制

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);

   }