判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
思路:把数字倒序,然后进行比较
#include <iostream> bool isPalindrome(int x) { if (x<0) return false; if (x >= 0 && x<10) return true; long temp = 0; int temp1 = x; while (x != 0) { temp = temp * 10 + x % 10; x /= 10; } //std::cout << temp << std::endl; if (temp1 == temp) return true; else return false; } int main() { int a = 2147483647; std::cout << isPalindrome(a) << std::endl; return 0; }
执行用时: 260 ms, 在Palindrome Number的C++提交中击败了3.63% 的用户
内存消耗: 72.9 MB, 在Palindrome Number的C++提交中击败了0.54% 的用户
。。。,极慢。。。其实只需要前半部分和后半部分进行比较就行了,对整体进行比较就等于多运算了一半