LEETCODE 9. 回文数(简单)

    科技2022-07-12  120

    一、题目

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

    示例 1:

    输入: 121 输出: true

    示例 2:

    输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

    示例 3:

    输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。

    进阶:

    你能不将整数转为字符串来解决这个问题吗?

    二、思路

    首先分两种情况,负数显然不符合要求,正数则进一步判断。定义一个整数n=反向整数x,如果最后x=n,则是回文。注意:如果在反向加中n溢出了,那肯定不是回文数。

    三、代码

    代码如下(示例):

    class Solution { public: bool isPalindrome(int x) { int m,n; n=x; m=0; if(x<0) return false; else{ while(n){ if(m<INT_MAX/10||m==INT_MAX&&n%10<=INT_MAX%10){ m=m*10+n%10; n/=10; } else return false; } if(m==x) return true; else return false; } } };

    总结

    Processed: 0.011, SQL: 8