1.分析
将数的位依次取出直接形成另一个数,与原数进行比较,不能直接使用方法中的参数,该数是变化的
2.解题
class Solution {public boolean isPalindrome(int x) {if(x<0) return false;int a=0;int z=x;while(x>1){a=a*10+z%10;z=z/10;}if(a!=x)return false;return true;}}
3.答案
class Solution {public:bool demo(int x) {if (x < 0 || (x % 10 == 0 && x != 0)) {return false;}int y = 0;while (x > y) {y = y * 10 + x % 10;x /= 10;}return x == y || x == y / 10;}};
4.总结
1.负数不是回文数
2.结尾是零的数除了零都不是回文数
3.数字长度为奇数时,我们可以通过 y/10 去除处于中位的数字.
例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,y= 123,由于处于中位的数字不影响回文,所以我们可以简单地将其去除。
4.从条件限制上更好的节省了运行所需要的时间
如果觉得《回文数 呃呃呃》对你有帮助,请点赞、收藏,并留下你的观点哦!