LeetCode(java)9. Palindrome Number
来源:互联网 发布:js cookie大小 编辑:程序博客网 时间:2024/06/08 19:10
Determine whether an integer is a palindrome. Do this without extra space.
题目描述:判断一个数字是否为回文数组,不允许使用辅存。
解法一:将数字x翻转后存于一个long中(防止溢出)
leetcode通过时间为:9ms(不推荐,比较用long来解决溢出并不是题目希望的,目前未想到其他解决溢出的方法)
public boolean isPalindrome(int x)<span style="white-space:pre"></span>{<span style="white-space:pre"></span> if(x<0)<span style="white-space:pre"></span> return false;<span style="white-space:pre"></span>int temp = x;<span style="white-space:pre"></span>long rs = 0;<span style="white-space:pre"></span>while(temp != 0)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>rs = rs*10+temp%10;<span style="white-space:pre"></span>temp/=10;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>if(rs == x)<span style="white-space:pre"></span>return true;<span style="white-space:pre"></span>else<span style="white-space:pre"></span>return false;<span style="white-space:pre"></span>}
解法二:模拟从两边向中间靠拢
例如输入1234321
首先细算最左边的位数left = 1000000;
然后数字 x 除 left 得到最左边的数字 a
x 对10取余得到最右边的数字 b
判断a b两个数字是否相等,不等则返回false,相等则继续。
然后对数字 x 进行处理,目标是:从1234321 变成 23432
① 将x对left取余的结果赋予x
② 即x从1234321变为234321
③ 再将x除10 得到目标23432
最后对left进行处理
x以及减少2位了,故left = left/100;
循环以上步骤直至left == 0
代码如下:
leetcode通过时间为10ms
public boolean isPalindrome(int x) {if(x<0)return false;else if(x<10)return true;int left = 1;int right = 10;int temp = x;while((temp/=10)!=0){ left*=10;}while(left>0){if(x/left != x%right)return false;x=(x%left)/10;left/=100;}return true; }
0 0
- LeetCode(java)9. Palindrome Number
- [LeetCode-Java]9. Palindrome Number
- [Leetcode] Palindrome Number (Java)
- [leetcode] Palindrome Number[java]
- LeetCode--Palindrome Number [Java]
- [LeetCode][Java] Palindrome Number
- leetcode:Palindrome Number 【Java】
- LeetCode : Palindrome Number [java]
- leetcode Palindrome Number(Java)
- LeetCode-Palindrome Number-Java
- Leetcode:9. Palindrome Number(JAVA)
- 【Leetcode】:9. Palindrome Number 问题 in JAVA
- [leetcode]9. Palindrome Number@Java解题报告
- LeetCode笔记:(Java) 9. Palindrome Number
- LeetCode 9. Palindrome Number
- [LeetCode]9.Palindrome Number
- LeetCode --- 9. Palindrome Number
- LeetCode 9.Palindrome Number
- HDU 2612 Find a way (广搜,队列)
- 各种排序算法
- activeMQ Mysql静态话
- iTunes connect 上传app遇到的问题 联系官方大全
- linux文件传输命令:SCP用法
- LeetCode(java)9. Palindrome Number
- Your project path contains non-ASCII characters(使用androidstudio常见错误)
- live555—VS2010/VS2013 下live555编译、使用及测试
- ASP.net和EasyUI后台管理系统
- 集群和分布式的区别
- HashMap
- HM编码器代码阅读(2)——框架以及主要流程
- BitMap、Drawable、InputStream、Byte[]互换
- Tomcat结构分析