[leetcode] Palindrome Number(不使用额外空间)
2015-07-20 20:10
204 查看
本来判断回文串是一件很容易的事情,只需要反转字符串后在与原字符串相比较即可。这道题目明确说明不能使用额外的空间,那么使用将其分解连接成字符串的方法便不是可行的。只好采用数学的方式: 每次取最高位和最低位相比较,总的位数可以用一个while先处理出来,循环直至取余和除数相等。
具体见代码:
具体见代码:
class Solution { public: bool isPalindrome(int x) { if(x<0) //special due return false; if(x<10) return true; int curMod=0; int test=x; while(test) { curMod++; test/=10; } curMod--;// bit num int left=pow(10,curMod*1.0),right=10; while(right<=left) { if(x%right!=x/left) return false; x=x%left,x/=10; left/=100; } return true; } };
相关文章推荐
- nagios监控远程端口
- 点击按钮切换背景
- Metal - 加强的 Rack, 简陋的 Action Controller
- android优化(json工具,message新建/传递,avtivity深入学习视频)
- [LeetCode][Java] Symmetric Tree
- JavaScript 实现简单二级联动
- poj 2411 Mondriaan's Dream(状态压缩+dp)
- LeetCode(22) Generate Parentheses
- 3D程序笔试题
- object-c之kvc kvo(人中有属性数组、Book对象,数组中装载Book对象)
- Windows7 Mysql 编码设置
- day05--Java面向对象复习--Exception异常
- hdu 5053 (2014上海网赛L题 求立方和)
- 旋转矩阵
- 不同的数据库页的摘要
- WorldWind源码剖析系列:影像图层类ImageLayer
- Qt的一些基础知识
- mybatis 源码系列 组件之 plugin
- 【C语言学习】《C Primer Plus》第11章 字符串和字符串函数
- 云计算和大数据时代网络技术揭秘(十一)数据中心互联