[Leetcode9]回文数

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

这题不难,主要解法很巧妙。

python:

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        flag = True
        if x < 0:
            flag =False
            return flag
        else:
            xStr = str(x)
            n = len(xStr)
            if n == 1:
                return flag
            else:
                i = 0
                if n % 2 == 0:
                    while(i<(n/2)):
                        if xStr[i] == xStr[n-1-i]:
                            i += 1
                        else:
                            flag = False
                            break
                if n % 2 != 0:
                    while(i<((n-1)/2)):
                        if xStr[i] == xStr[n-1-i]:
                            i += 1
                        else:
                            flag = False
                            break
                return flag

C++中,用int test{x}初始化比int test=x要慢很多。  

class Solution {
public:
    bool isPalindrome(int x) {
        int test=x;
        if(x<0){
            return false;
        }
        int y = 0;
        while(x){
            y = y * 10 + (x % 10);
            x /= 10;
        }
        if(y == test) return true;
        else return false;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_40501689/article/details/82805428