Easy
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Example 2:
| 12
 3
 
 | Input: -121Output: false
 Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
 
 | 
Example 3:
| 12
 3
 
 | Input: 10Output: false
 Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
 
 | 
Follow up:
Coud you solve it without converting the integer to a string?
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
示例 2:
| 12
 3
 
 | 输入: -121输出: false
 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
 
 | 
示例 3:
| 12
 3
 
 | 输入: 10输出: false
 解释: 从右向左读, 为 01 。因此它不是一个回文数。
 
 | 
进阶:
你能不将整数转为字符串来解决这个问题吗?
想法
考虑边界条件即可。用了一个数组把所有数字全部存储下来,然后一一对比即可。还可以考虑一下不存储怎么做。
解
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | class Solution {public:
 bool isPalindrome(int x)
 {
 if (x < 0) {
 return false;
 }
 int num[20];
 int length = 0;
 while (x > 0) {
 num[length++] = x % 10;
 x /= 10;
 }
 for (int i = 0; i < length / 2; i++) {
 if (num[i] != num[length - 1 - i]) {
 return false;
 }
 }
 return true;
 }
 };
 
 |