PalindromeNumber

回文数

题目介绍

回文数

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

示例 1:

1
2
输入: 121
输出: true

示例 2:

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

示例 3:

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

进阶:

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

题目解法

这道题如果不考虑进阶,那很简单,下面是自己写的一版。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package algorithm;

public class PalindromeNumber {

public static boolean isPalindrome(int x) {
String result = String.valueOf(x);
if (result.length() == 1) {
return true;
}

for (int i = 0; i < result.length() / 2; i++) {
if (result.charAt(i) != result.charAt(result.length() - i - 1)) {
return false;
}
}

return true;
}

public static void main(String[] args) {
System.out.println(isPalindrome(121));
System.out.println(isPalindrome(-121));
System.out.println(isPalindrome(10));
}
}

打印:

1
2
3
true
false
false

思路:

就是类似于暴力破解。

如果是进阶版,不需要用字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
public static boolean isPalindrome1(int x) {
if (x < 0) {
return false;
}
int result = 0;
int temp = x;
while(temp > 0) {
int modNum = temp % 10;
result = result * 10 + modNum;
temp /= 10;
}
return x == result;
}

思路:

也很简单,无法是取模。


PalindromeNumber
https://yangtzeshore.github.io/2021/01/09/PalindromeNumber/
作者
Chen Peng
发布于
2021年1月9日
许可协议