No.009:Palindrome Number

Posted Gerrard_Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No.009:Palindrome Number相关的知识,希望对你有一定的参考价值。

问题:

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

 

官方难度:

Easy

 

翻译:

不使用额外空间,判断一个数是不是回文形式。

 

  1. 暂定负数不参与讨论。
  2. 先获取数值长度,取得对应位置的数字比较。
  3. 重点是如何取到一个整数指定位置的数字,通过(x/Math.pow(10,n-1))%10来实现。
  4. 循环至一半就可以退出。

 

解题代码:

 1 public static boolean isPalindrome(int x) {
 2         // 负数不在讨论范围内
 3         if (x < 0) {
 4             return false;
 5         }
 6         int length = String.valueOf(x).length();
 7         // 低位/高位
 8         int low;
 9         int high;
10         // 循环至一半就可以退出
11         for (int i = 1; i < length / 2 + 1; i++) {
12             // low+high=length+1
13             low = getNFromLow(i, x);
14             high = getNFromLow(length + 1 - i, x);
15             if (!(low == high)) {
16                 return false;
17             }
18         }
19         return true;
20     }
21 
22     // 获取数字x,自低位起的第n个数
23     private static int getNFromLow(int n, int x) {
24         return (int) ((x / Math.pow(10, n - 1)) % 10);
25     }
isPalindrome

 

相关链接:

https://leetcode.com/problems/palindrome-number/

https://github.com/Gerrard-Feng/LeetCode/blob/master/LeetCode/src/com/gerrard/algorithm/easy/Q009.java

 

PS:如有不正确或提高效率的方法,欢迎留言,谢谢!

 

以上是关于No.009:Palindrome Number的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 9. palindrome number

[Leetcode] Palindrome Number

9. Palindrome Number

009.Palindrome Number

9. Palindrome Number

9. Palindrome Number