[LeetCode]Palindrome Number
2015-07-08 21:04
162 查看
判断一个整数是不是回文数
利用字符串的操作,将int通过stringstream转成
string来通用处理
class Solution { public: bool isPalindrome(int x) { stringstream ss; ss<<x; string s; ss>>s; int i,j; if(s.size()==1) return true; i = s.size()/2-1; if(s.size()&0x1) //odd j = i+2; else j = i+1; while(i>=0&&j<s.size()&&s[i]==s[j]) --i,++j; ++i,--j; if(j-i+1==s.size()) return true; else return false; } };
如果不能使用额外空间
使用反转整数的方法
bool isPalindrome(int x) { int y=0; if(x<0) return false; int x_old = x; while(x){ y = 10 * y + x%10; x = x/10; } return x_old==y; }
一个awesome的方法,只用比较一半数字
/*Determine whether an integer is a palindrome. Do this without extra space.*/ bool isPalindrome(int x) { if(x<0|| (x!=0 &&x%10==0)) return false; int sum=0; while(x>sum) { sum = sum*10+x%10; x = x/10; } return (x==sum)||(x==sum/10); }
相关文章推荐
- Android中AndroidManifest.xml文件解析
- 弗洛伊德算法
- 图片上传处理Server端
- 面试题26:复杂链表的赋值
- 二维码生成Zxing.net DEMO
- 进制转换(数据存储)
- 《opencv入门》
- 包含min函数的栈
- 自学ios之路(2)
- List 接口以及实现类和相关类源码分析
- 用 Freemarker 生成 word 文档(包含图片)
- 无插件纯Web 3D机房,HTML5+WebGL倾力打造
- LeetCode-Pow(x, n)-解题报告
- 判断我国公民的身份证是否合法
- 《opencv2入门》感兴趣区域
- LeetCode Number of 1 Bits
- 【机器学习系列】机器学习界大牛林达华推荐的书籍
- Android总结的基本机制监控事件
- 台大机器学习基石笔记(四)——VC 维3
- 浙江工业大学简易绩点计算器c++版