LeetCode 9 Palindrome Number
来源:互联网 发布:手机微信假转账软件 编辑:程序博客网 时间:2024/04/28 01:52
Palindrome Number
有了回文字符串的基础这道题其实不难,在不借助字符串的基础上,转化为整型数组处理。
public boolean isPalindrome(int x) { if(x<0)return false; if(x<10&&x>-1)return true; int []px = new int[10]; int i=0; while(x>0){ px[i] = x%10; x=x/10; i++; } if(i%2==0){ int j = i/2; int k = j-1; while(k>=0){ if(px[j]!=px[k]){ return false; } k--; j++; } }else{ int j=i/2-1; int k=i/2+1; while(k>=0){ if(px[j]!=px[k]){ return false; } k--; j++; } } return true; }
Discuss上有个巧妙的算法:
class Solution {public:bool isPalindrome(int x) { if(x<0) return false; int num=x; int a=0; while(x) { a=a*10 + x%10; x=x/10; } if(a==num) return true; else return false;}};
这个算法比我的更优,没有利用额外的数组空间。因为使用了px迭代之后,本身就是该数的回文序列。因此,只需要判断该数是否等于原数即可。我当时怎么没想到,这么容易。这也是之前几道题常用的迭代方法,对于数字字符串来说非常有用。关键部分代码为:
px = px*10+x%10;
x=x/10;
实在是太精妙了。
0 0
- LeetCode 9 - Palindrome Number
- leetcode 9 Palindrome Number
- Leetcode【9】:Palindrome Number
- [leetcode 9] Palindrome Number
- [Leetcode] 9 - Palindrome Number
- LeetCode(9) Palindrome Number
- [leetcode 9] Palindrome Number
- LeetCode 9:《Palindrome Number》
- leetcode.9---------------Palindrome Number
- leetCode #9 Palindrome Number
- leetcode 9 Palindrome Number
- LeetCode 9: Palindrome Number
- leetcode-9 Palindrome Number
- LeetCode 9 Palindrome Number
- LeetCode 9 Palindrome Number
- LeetCode 9 - Palindrome Number
- leetcode #9 Palindrome Number
- leetcode 9 -- Palindrome Number
- C++Primer(第五版) 习题答案
- linux运维学习方法
- dwz分页组件中,一个奇怪的翻页问题的解决
- C语言(1)--解一元二次方程、将整数第五位清零、说谎、放鞭炮
- 我的父亲母亲
- LeetCode 9 Palindrome Number
- Python下opencv使用笔记(十一)(详解hough变换检测直线与圆)
- 网络攻击技术开篇——SQL Injection
- CODEVS1033
- Android Context完全解析,你所不知道的Context的各种细节
- System Generator学习笔记(二)
- 2029 Palindromes _easy version
- iOS开发笔记(4)---- 反射
- 2015-07-12到2015-07-23小结