数据结构课老师布置了判断回文串的思考题,看到LeetCode上这道题,就拿来做了。
这道题是判断回文数,我的第一反应是将数字转换成字符串。然后再用判断字符串是不是回文串的方法做,使用双指针、堆栈等各种方法。
但是判断回文数其实可以利用数字的特点,根本不需要再额外开辟空间。
这道题可以直接反转数字的一半然后和原数的前一半比较。但是怎么知道反转了数字的一半长呢?
当反转后的数字超过了不断除以10后的原数就可以认为反转了数字的一半长。
下面是代码部分
bool isPalindrome(int x) { //对于负数和末尾是0的数字单独处理 if(x<0||x%10==0&&x!=0) return false; int reverseNum=0; while(reverseNum