LeetCode 9.Palindrome Number

来源:互联网 发布:人工智能 下半场 编辑:程序博客网 时间:2024/05/21 17:03


class Solution {public:    bool isPalindrome(int x) {vector<int> num;bool result;int y;int z;int num_size;bool true1 = true;if (x >= 0){z = x / 10;y = x % 10;while (z > 0){if (y != 0 && true1){num.push_back(y);true1 = false;}else{num.push_back(y);}y = z % 10;z = z / 10;}num.push_back(y);    num_size = num.size();if (num_size > 1){for (int i = 0; i < (num_size / 2); i++){if (num.at(i) == num.at(num_size - 1 - i))result = true;else{result = false;break;}}}elseresult = true;}else{result = false;}return result;}};

判断一个数是不是回文数,OJ上判断负数不是回文数。做的方法还是把一个整数的每个位分出来然后对比。


看了solution的解答以后发现自己写的太啰嗦了,直接反转一半然后对比就完了。

class Solution {public:    bool isPalindrome(int x) {        if(x<0|| (x!=0 &&x%10==0)) return false;        int sum=0;        while(x>sum)        {            sum = sum*10+x%10;            x = x/10;        }        return (x==sum)||(x==sum/10);    }};