自学内容网 自学内容网

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)!