首页 > 代码库 > 【Leet Code】Palindrome Number
【Leet Code】Palindrome Number
Palindrome Number
Total Accepted: 19369 Total Submissions: 66673My SubmissionsDetermine whether an integer is a palindrome. Do this without extra space.
推断一个数整数是不是回文?比如121,1221就是回文,好吧,直接利用前面写过的【Leet Code】Reverse Integer——“%”你真的懂吗?
只是这里要考虑翻转后,数值溢出的问题,代码例如以下:
/* //first method class Solution { public: bool isPalindrome(int x) { long long temp = x; long long ret = 0; bool isNegative = false; if (temp < 0) { return false; } while (temp) { ret = ret * 10 + temp % 10; temp /= 10; } if(x == ret) { return true; } else { return false; } } }; */
当然,我们还有更好的方法,事实上,初见这个题目,第一个想法是取头取尾进行比較,然后把头尾去掉,再循环,直到数值为个位数为止:
class Solution { public: bool isPalindrome(int x) { if (x < 0) { return false; } int divisor = 1; while (x / divisor >= 10) { divisor *= 10; } while (x) { if (x / divisor != x % 10) { return false; } x = (x % divisor) / 10; divisor /= 100; } return true; } };
【Leet Code】Palindrome Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。