4.leetcode题目9:Palindrome Number
2016-03-03 18:11
239 查看
这道题目不难,但是要屡清楚还是蛮有点复杂的
首先,负数不是回数,0是回数,要单独考虑这两种情况。
方法:比较整数的头和尾,相等则循环,不相等则return false;
取头尾的办法是:
int n=1;
while(x/n>=10){
n=n*10;
}//这算是一种比较好的表示方法了,速度快
我想到的方法是:
int n=0,a=x;
while(a/10>=1){
x=x/10;
n++;
n=n/100;
}
确定数x的位数,比如1234,对应n=1000;
第一位x/n,尾位则是x%10。
然后,去掉当前x的头和尾,组成新的数x,比如x=12321———>x=232,循环。
x=x%n;//去头
x=x/10;//去尾
这种方式是我没想到的
我想到的方法是连着上面我想到的那一段的:
p=x/pow(10,n);
q=x%10;
x=x-p*pow(10,n)-q;
n=n-2;
总之多学习别人的代码!!!
最后运行如上图,不是最快,我想不到更快的了
首先,负数不是回数,0是回数,要单独考虑这两种情况。
方法:比较整数的头和尾,相等则循环,不相等则return false;
取头尾的办法是:
int n=1;
while(x/n>=10){
n=n*10;
}//这算是一种比较好的表示方法了,速度快
我想到的方法是:
int n=0,a=x;
while(a/10>=1){
x=x/10;
n++;
n=n/100;
}
确定数x的位数,比如1234,对应n=1000;
第一位x/n,尾位则是x%10。
然后,去掉当前x的头和尾,组成新的数x,比如x=12321———>x=232,循环。
x=x%n;//去头
x=x/10;//去尾
这种方式是我没想到的
我想到的方法是连着上面我想到的那一段的:
p=x/pow(10,n);
q=x%10;
x=x-p*pow(10,n)-q;
n=n-2;
总之多学习别人的代码!!!
最后运行如上图,不是最快,我想不到更快的了
相关文章推荐
- Animation动画详解(九)——联合动画的代码实现
- IOS探索之调整UILabel行高间距(利用iOS 6的特性来手动调整行间矩)
- 读《借助开源项目,学习软件开发》总结
- CMA连续物理内存用户空间映射---(一)
- The 9th Zhejiang Provincial Collegiate Programming Contest->Problem D:D - Draw Something Cheat
- 确定项目是用Visual Studio哪个版本开发的
- 自定义实现从系统相册中取照片
- HDOJ-1242(Rescue)(bfs+优先队列)
- 尽量用static const替代预处理指令
- DWR问题
- Android逆向分析(2) APK的打包与安装背后的故事
- 微信公众平台开发教程
- leetcode--Reverse Bits
- 你必须了解的Session的本质
- 无法打开登录所请求的数据库
- 批量设置AssetBundleName
- 一致性哈希java实现
- 彻底卸载Mysql 服务器
- linux 安装redis 部署 启动 停止
- Qt for Android