LeetCode 面试经典150题 9.回文数
题目:
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数:是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121
是回文,而123
不是。
思路:方法一:将数字化为字符串,左右同时遍历
方法二:不借助字符串,求数字的倒序,然后比较是否相同
代码:
class Solution { // 方法一
public boolean isPalindrome(int x) {
String s = String.valueOf(x);
int i = 0, j = s.length() - 1;
while (i < j) {
if (s.charAt(i) != s.charAt(j))
return false;
i++;
j--;
}
return true;
}
}
class Solution { // 方法二
public boolean isPalindrome(int x) {
if (x < 0) {
return false;
}
int num = x;
int cur = 0;
while (num != 0) {
cur = cur * 10 + num % 10; // 求x的倒序
num = num / 10;
}
return cur == x;
}
}
性能:
方法一:时间复杂度o(n) 空间复杂度o(1)
方法二:时间复杂度o(log n) 空间复杂度o(1)
原文地址:https://blog.csdn.net/qq_57349657/article/details/142533530
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!