Palindrome Number
问题:
Determine whether an integer is a palindrome. Do this without extra space.
思路:
常用的进制遍历方法
while(num != 0) { remian = num % 进制; num /= 进制; }
我的代码:
public class Solution { public boolean isPalindrome(int x) { if(x < 0) return false; int reverse = reverse(x); return reverse == x; } public int reverse(int x) { int rst = 0; while(x != 0) { rst = rst * 10 + x % 10; x /= 10; } return rst; } }
他人代码:
class Solution {
public:
bool isPalindrome(int x) {
//negative number
if(x < 0)
return false;
int len = 1;
while(x / len >= 10)
len *= 10;
while(x > 0) {
//get the head and tail number
int left = x / len;
int right = x % 10;
if(left != right)
return false;
else {
//remove the head and tail number
x = (x % len) / 10;
len /= 100;
}
}
学习之处:
- 常见数字访问方法,while(num != 0) num /= 进制数
- 常用的进制增加方法, num = num * 进制 + some remain