leetcode做题笔记9

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

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

例如,121 是回文,而 123 不是。

第一种思路:

直接读取目标数,计算反转后的值,判断是否为回文数

bool isPalindrome(int x){
    long int y = 0;
    long int a = x;
    if(a<0)return false;
    while(a!=0)
    {
        y=a%10+y*10;
        a/=10;       
    }
    if(y==x)return true;
    return false;
}

时间复杂度为O(n),空间复杂度为O(1)

本题先判断是否为负数,若为负数直接输出false,若为正数则计算反转后的值,若与原数相等则输出true,实际编写的时候发现要用长整型来进行计算,否则会出现溢出,答案错误等情况。

问题:未考虑反转后溢出的情况

收获:对回文数相关问题更加熟悉

你可能感兴趣的:(leetcode,笔记,算法)