• LeetCode 9. Palindrome Number


    9. Palindrome Number(回文数)

    题目:

      判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

      示例 1:

      输入: 121
      输出: true
    

      示例 2:

      输入: -121
      输出: false
      解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
    

      示例 3:

      输入: 10
      输出: false
      解释: 从右向左读, 为 01 。因此它不是一个回文数。
    

      进阶:

      你能不将整数转为字符串来解决这个问题吗?

    思路:

      正常方法就是对于数进行判断,第一个和最后一个对比,一直对比到中间一个或两个,这种方法采用整数转字符串效率较高。

      考虑到进阶,使用转置方法较好,但是这个可能会越界超出int的范围(我真没想到),所以参考了一波别人的思路,只转置一半的数字,就不会越界了(真是个小机灵鬼)。并且数字如果为负数,不会是回文,如果个位是0并且数不为0,也不会回文。并且最后判断的时候,考虑到了奇偶数位,减少了一步判断操作。

    代码:

    1     public static boolean isPalindrome(int x) 
    2     {
    3         String str = s+"";
    4         int len = str.length();
    5         for (int j = 0; j < len/2; j++) 
    6             if (str.charAt(j) != str.charAt(len-j-1)) 
    7                 return false;
    8         return true;
    9     }
    普通
     1     public static boolean isPalindrome(int x) 
     2     {
     3         if(x < 0 || (x % 10 == 0 && x != 0)) 
     4         {
     5             return false;
     6         }
     7         int num = 0;
     8         while(x > num) 
     9         {
    10             num = num * 10 + x % 10;
    11             x = x/10;
    12         }
    13 
    14         return x == num || x == num/10;        
    15     }
    进阶
  • 相关阅读:
    第一阶段冲刺(6)--每日立会--个人工作总结
    第一阶段冲刺--每日立会(5)--个人工作总结
    第一阶段冲刺--每日立会(4)--个人工作总结
    第十一周学习记录表
    第一阶段冲刺--每日立会(3)个人工作总结
    第一阶段冲刺--每日立会(2)--个人工作总结
    第一阶段冲刺--每日立会(1)--个人工作总结
    第十周学习记录表
    第九周学习进度表
    输入法
  • 原文地址:https://www.cnblogs.com/blogxjc/p/10928910.html
Copyright © 2020-2023  润新知