Leetcode 9 Palindrome Number 判断一个数是否为回文数
2018-03-21 17:54
323 查看
题目描述:
Determine whether an integer is a palindrome. Do this without extra space.
判断一个数是否是回文数(正着读和反着读一样),负数没有回文数
思路:
1.取a=输入数。令b=0,是a的倒转形式
每次b乘以10,以表示b向左移动一次,取a的最后一位数字加到b中,做完后a除以10,表示下一次可以取出a 的左面一位。
假设a=121,那么有:a=121,b=0 --> a=12,b=1 --> a=1,b=12 --> a=0,b=121
2.时间复杂度和空间复杂度都为O(lgn),lgn是输入数字的长度
源代码:class Solution {
public:
inline bool isPalindrome(int x)
{
if(x<0) return false;
int a=x,b=0;//a正常的x,b回文的x
while(a)
{
b=10*b+a%10;
a=a/10;
}
return b==x;
}
};
Determine whether an integer is a palindrome. Do this without extra space.
判断一个数是否是回文数(正着读和反着读一样),负数没有回文数
思路:
1.取a=输入数。令b=0,是a的倒转形式
每次b乘以10,以表示b向左移动一次,取a的最后一位数字加到b中,做完后a除以10,表示下一次可以取出a 的左面一位。
假设a=121,那么有:a=121,b=0 --> a=12,b=1 --> a=1,b=12 --> a=0,b=121
2.时间复杂度和空间复杂度都为O(lgn),lgn是输入数字的长度
源代码:class Solution {
public:
inline bool isPalindrome(int x)
{
if(x<0) return false;
int a=x,b=0;//a正常的x,b回文的x
while(a)
{
b=10*b+a%10;
a=a/10;
}
return b==x;
}
};
相关文章推荐
- leetcode之数值计算类-----9. Palindrome Number(判断一个数是否为回文数)
- 每天一道LeetCode-----存在一个由加油站组成的环路,判断是否可以从某个加油站出发环绕一周
- 判断一个字符串是否为回文数字符串
- PAT-Advanced Level 1019 判断一个数在n进制下是否是回文数
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- [置顶] 判断一个数是否返回回文数,(回文数也是一个数字,即正反序是同一个数)
- leetcode之O(1)空间复杂度判断一个整数是否是回文整数
- 不使用循环或递归判断一个数是否为3的幂(leetcode 326)
- Palindrome Number leetcode 判断一个整数是否是回文
- (Leetcode)判断一个图是否是可以拓扑排序的——使用Queue
- 【C语言】判断一个数是否为回文数
- 9. Palindrome Number(判断一个整数是否为回文数)
- 判断一个数是否为回文数
- java编写输入一个数判断是否是回文数,所谓回文数比如121,1221,6778776
- 项目39.4-1输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数,正着看、倒着看,是同一个数)。
- [C++]LeetCode 9: Palindrome Number(判断整数是否是回文数)
- 判断一个正整数是否是回文数
- C语言:判断一个数是否为回文数(回文数也是一个数字,数字的特点是正反序是同一个数字,如:12321,3443)
- leetcode231-Power of Two(判断一个整数n是否为2的方幂)
- LeetCode 204. Count Primes 及判断一个数是否是质数的方法