回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:输入: 121输出: true
示例 2:输入: -121输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:输入: 10输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:你能不将整数转为字符串来解决这个问题吗?

思维僵化还在字符串没跳出来,扫了一眼评论区,瞅到“反转”二字,瞬间悟了。整数+反转,还是判断回文,灵光一闪,思路不难找。例如数字:1223,将它倒置获得3221,比较后发现不相等,就不是回文。


#include 

class Solution {

public:

    bool isPalindrome(int x) {

        if(x<0)

        {

            return false;

        }

        else

        {

            int len=0,i=0,temp=x;

            long long s=0;

            std::arrayarr;

            while(temp)

            {

                arr[len]=temp%10;

                temp/=10;

                len++;

            }

            while(i

一开始自信满满交上去,发现s太小了,超出范围了,改成long long就过了。

你可能感兴趣的:(回文数)