LeetCode 009 Palindrome Number
来源:互联网 发布:网上约车软件 编辑:程序博客网 时间:2024/05/21 08:35
题目
Determine whether an integer is a palindrome. Do this without extra space.
思路
1 题目不算难,方法有很多,但是要考虑极限情况,就可能会把很多方法给撇除了。
2 首先考虑负数的话 ,返回false;这样就可以单独拿出来作判断。
3 考虑如果把数字颠倒过来来和原来的比较。可是颠倒过来有可能溢出,所以用字符串的方式颠倒也不成立。
4 考虑把每个数字都记录下来,然后对比;不满足题意(不能用额外空间)
5 最后留下来的就是利用数字本身的性质一步步来做。余数,除数的理解基础扎实即可。
代码
public class Solution { public boolean isPalindrome(int x) { if(x<0){ return false; } int cur =x; int divisor =1; while(cur/divisor>=10){ divisor*=10; } cur =x; while(divisor>=10){ int low = cur%10; int high = cur/divisor; if(low!=high){ return false; } cur = (cur%divisor)/10; divisor /=100; } return true; }}
2015.3.16总结二
再第二次刷的时候,有卡壳的地方,在于确定divisor为多少。
一开始肯定设置divisor 为1。x/divisor为多少的时候继续呢?5,9 碰到1 就停止。 10/1继续,然后10/10就停止了,直到99也是/10停止。碰到100/10必须继续,它的极限为>=10。
如果设定不合理,容易出现Divisor溢出的情况。如下代码:
long Div = 10; while(x/Div>0){ Div*=10; } int maxDiv=(int)(Div/10);
0 0
- LeetCode 009 Palindrome Number
- LeetCode 009 Palindrome Number
- [LeetCode]-009-Palindrome Number
- LeetCode 009 Palindrome Number
- 009 Palindrome Number [Leetcode]
- [LeetCode]009-Palindrome Number
- LeetCode 009 Palindrome Number
- leetcode Palindrome Number 009
- leetcode 009 Palindrome Number
- LeetCode 009 Palindrome Number
- leetcode-009-Palindrome Number
- LeetCode-009 Palindrome Number
- [LeetCode OJ][009]Palindrome Number
- 【LeetCode OJ 009】Palindrome Number
- leetcode 009 —— Palindrome Number
- leetcode之路009 Palindrome Number
- LeetCode: Palindrome Number
- LeetCode Palindrome Number
- InnoDB与Myisam的六大区别
- MySQL InnoDB之事务与锁详解
- Android SDK Manager 下载缓慢解决办法
- js prototype原形
- oracle 复合索引
- LeetCode 009 Palindrome Number
- 网站开发-php开发手机论坛(9)-分页显示评论
- uva 1156 - Pixel Shuffle(模拟+置换)
- linux理论基础
- nginx域名配置
- 实用make最佳实践(精)
- js
- maven 整合struts2,mybaitis,spring使用drudi数据源
- php安装 出现Sorry, I cannot run apxs. ***错误解决方法