判断回文整数

来源

https://leetcode.com/problems/palindrome-number/

要求

判断一个整数是不是回文数,尽量减少内存暂用。

思路

可能的情况:

  • 负数的应当作非回文数
  • 0-9 是回文数
  • 判断时可能会溢出

>9 的数开始判断,先计算出整数有多少位,这其中要处理出现溢出的情况,例如整数 x = 34043,计算出位数 len = 5

以此判断最高位和最低位是否相同,若相同 令 x = 404,继续判断。

实现代码

bool isPalindrome(int x) {
static const int MAX_INT = (int) ((unsigned)~0 >> 1);
if(0 > x){
return false;
} int len = 1, decimal = 1;
while(x >= decimal*10){ // 计算整数有多少位
decimal *= 10;
++len;
if(MAX_INT / decimal < 10)
{
++len;
break;
}
} if(len == 1){
return true;
}
else{
int low = 1;
while(len-- > low++){
if(x / decimal == x % 10){
x = (x % decimal - x % 10) / 10;
decimal /= 100;
}
else{
return false;
}
}
return true;
}
}

最新文章

  1. 【分布式】Zookeeper会话
  2. JavaWeb路径问题打包总结--小心出门右转404
  3. 用css实现条纹背景
  4. Box2D自定义重力
  5. jQuery api 快速参考[转]
  6. C#之类的继承、抽象类和虚方法
  7. 2016温碧霞爱情《爱在深秋》HD720P.国语中字
  8. 为Virtual Studio Code配置Python调试插件(Ubuntu14.04)
  9. 8款给力HTML5/CSS3应用插件 可爱的HTML5笑脸
  10. PC问题-可以PING通IP,PING名字不通,可以远程,但不能访问共享文件夹?
  11. python 使用__slots__
  12. 1105PHP笔记001
  13. 关于移动APP与Web APP的测试重点以及区别
  14. 【NOIP模拟】从我背后出现
  15. JavaScript使用闭包实现单例模式
  16. linux下nginx日常操作
  17. python学习day6 数据类型Ⅳ(集合)
  18. C#计算重重字符串,出现的次数
  19. vim 插件 -- omnicppcomplete
  20. 如何在windows2008/2012上安装启明星系统。

热门文章

  1. Ubuntu Server 使用 PPA 安装 Java (JDK) 8
  2. Python的主要应用领域及应用场景
  3. Gym - 101572E Emptying the Baltic bfs加剪枝
  4. UVALive 3645 时序模型
  5. javaEE 转发 和 重定向
  6. java中double的四舍五入 BigDecimal
  7. java TopK算法
  8. HTTP的请求头标签 If-Modified-Since
  9. cesm1_2_2在南信大大型机上的移植以及运行简单case的步骤
  10. android window(二)从getSystemService到WindowManagerGlobal