LeetCode题库解答与分析——#9.回文数PalindromeNumber
2018-03-14 21:41
405 查看
#9 回文数 Palindrome Number
判断一个整数是否是回文数。不能使用辅助空间。
Determine whether an integer is a palindrome. Do this without extra space.
一些提示:负整数可以是回文数吗?(例如 -1)如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?本题有一种比较通用的解决方式。
个人思路:
分别从前往后和从后往前依次判断是否字符相同,不同则立刻返回false
代码(JavaScript):/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
var length=x.toString().length;
if(length==1){
return true;
}
for(var i=0,j=length-1;i<j;i++,j--){
if(x.toString().charAt(i)!=x.toString().charAt(j)){
return false;
}
}
return true;
};他人思路:
颠倒整数后与原数相等则成立,其中小于0或10的倍数则不成立
代码(Java):public boolean isPalindrome(int x) {
if (x<0 || (x!=0 && x%10==0)) return false;
int rev = 0;
while (x>rev){
rev = rev*10 + x%10;
x = x/10;
}
return (x==rev || x==rev/10);
}
判断一个整数是否是回文数。不能使用辅助空间。
Determine whether an integer is a palindrome. Do this without extra space.
一些提示:负整数可以是回文数吗?(例如 -1)如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢?本题有一种比较通用的解决方式。
个人思路:
分别从前往后和从后往前依次判断是否字符相同,不同则立刻返回false
代码(JavaScript):/**
* @param {number} x
* @return {boolean}
*/
var isPalindrome = function(x) {
var length=x.toString().length;
if(length==1){
return true;
}
for(var i=0,j=length-1;i<j;i++,j--){
if(x.toString().charAt(i)!=x.toString().charAt(j)){
return false;
}
}
return true;
};他人思路:
颠倒整数后与原数相等则成立,其中小于0或10的倍数则不成立
代码(Java):public boolean isPalindrome(int x) {
if (x<0 || (x!=0 && x%10==0)) return false;
int rev = 0;
while (x>rev){
rev = rev*10 + x%10;
x = x/10;
}
return (x==rev || x==rev/10);
}
相关文章推荐
- LeetCode题库解答与分析——#152. 乘积最大子序列MaximumProductSubarray
- LeetCode题库解答与分析——#7.颠倒整数ReverseInteger
- LeetCode题库解答与分析——#91. 解码方法DecodeWays
- LeetCode题库解答与分析——#3.无重复字符的最长子串LongestSubstringWithoutRepeatingCharacters
- LeetCode题库解答与分析——#12.整数转罗马数字IntegerToRoman
- LeetCode题库解答与分析——#95. 不同的二叉查找树 IIUniqueBinarySearchTreeII
- LeetCode题库解答与分析——#5.最长回文子串LongestPalindromicSubstring
- LeetCode题库解答与分析——#96. 不同的二叉查找树UniqueBinarySearchTree
- LeetCode题库解答与分析——#53.最大子序和MaximumSubarray
- LeetCode题库解答与分析——#62. 不同路径UniquePaths
- LeetCode题库解答与分析——#120. 三角形最小路径和Triangle
- LeetCode题库解答与分析——#1.两数之和TwoSum
- LeetCode题库解答与分析——#70. 爬楼梯ClimbingStairs
- LeetCode题库解答与分析——#121. 买卖股票的最佳时机BestTimeToBuyAndSellStock
- LeetCode题库解答与分析——#63.不同路径IIUniquePathsII
- LeetCode题库解答与分析——#2.两数相加AddTwoNumbers
- 【LeetCode题意分析&解答】35. Search Insert Position
- 【LeetCode题意分析&解答】38. Count and Say
- 【LeetCode题意分析&解答】34. Search for a Range
- 【LeetCode题意分析&解答】36. Valid Sudoku