简洁易懂讲清原理,讲不清你来打我~
输入整数,判断是否为回文数
简单的思路
翻转后半段
前半段的最低位作为后半段的最高位
前半段数字不断切除个位,放到后半段的结尾,当前半段小于后半段停止
负数排除
准确的定义
left是前半段的数字
right是后半段的数字的翻转,位数=left位数或者right多一位
class Solution {
public:
bool isPalindrome(int x) {
if(x<0)return false;
if(x!=0&&x%10==0)return false;
int left=x,right=0;
while(left>right){
right=right*10+left%10;
left/=10;
}
//x回文且偶位数
if(left==right)return true;
//x回文且奇位数
if(left==right/10)return true;
return false;
}
};
踩过的坑
//个位为0必须特判
if(x!=0&&x%10==0)return false;
1
喜欢简洁易懂还能讲清楚原理博客的小伙伴就关注关注这个非常高产的博主呀,下次再会~