(java)leetcode-9

    xiaoxiao2021-04-04  47

    Palindrome Number

    Determine whether an integer is a palindrome. Do this without extra space.

    Some hints:

    Could negative integers be palindromes? (ie, -1)

    If you are thinking of converting the integer to string, note the restriction of using extra space.

    You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case?

    There is a more generic way of solving this problem.

    解题思路:

    大概就是利用不断地相除取余得到原来的数的逆转结果然后比较看对不对就可以了。

    注意:

    负数不是回文数。

    当一个数是10的倍数时,这个数一定不是回文数。(这个是从别人那看到的,一开始没想到这个,加上之后发现快了不少)

    [java] view plain copy print ? public class Solution {      public boolean isPalindrome(int x) {          if(x<0 || (x != 0 && x%10 == 0))              return false;          int result = 0,num = x;          while(num != 0)          {              int a = num%10;              result = result*10 +a;              num = num/10;          }          //System.out.println(result);          if(result == x)              return true;          else              return false;      }  }   刚发现说不能溢出,那就只能用另一种做法了。 public class Solution { public boolean isPalindrome(int x) { if(x<0 || (x != 0 && x == 0)) return false; int result = 0; while(result <= x) { result = result*10+x; if(result == x || result == x/10) return true; x = x/10; } return false; } } public class Solution { public boolean isPalindrome(int x) { if(x<0 || (x != 0 && x == 0)) return false; int result = 0,num = x; while(num != 0) { int a = num; result = result*10 +a; num = num/10; } //System.out.println(result); if(result == x) return true; else return false; }
    转载请注明原文地址: https://ju.6miu.com/read-666066.html

    最新回复(0)