leetcode_【9】回文数

1.题目描述

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

示例 1:

输入: 121
输出: true

示例 2:

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

示例 3:

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

2.解题思路

方法1:转换成字符串,将字符串反转进行比较是否相等

方法2:用一个stack存入数字从低位到高位的数;依次弹出(高位到低位弹出)跟每次数值取余的数进行对比

3.代码

方法1:

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public boolean isPalindrome(int x) {
String res = x+"";
//字符串反转
String ans = new StringBuilder(x+"").reverse().toString();
if(res.equals(ans)){
return true;
}
return false;
}
}

方法2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public boolean isPalindrome(int x) {
Stack<Integer> stack = new Stack<>();
int res = x;
if(x<0)
return false;
// 依次从右到左入栈
while(x>0){
stack.push(x%10);
x = x / 10;
}
while (res>0){
//pop弹出,从左到右的字符串,res%10是从右到左
if(stack.pop()==res%10){
res = res/10;
}else {
return false;
}
}
return true;
}
}

4.提交记录

leetcode提交结果

leetcode提交结果

文章目录
  1. 1. 1.题目描述
  2. 2. 2.解题思路
  3. 3. 3.代码
  4. 4. 4.提交记录
| 139.6k