码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 9. Palindrome Number

时间:2019-05-27 09:16:08      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:倒序   使用   string   lse   while   als   color   lin   参考   

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     }
进阶

 

LeetCode 9. Palindrome Number

标签:倒序   使用   string   lse   while   als   color   lin   参考   

原文地址:https://www.cnblogs.com/blogxjc/p/10928910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!