判断一串数字是否回文
2016-05-12 17:18
127 查看
判断一串数字是否回文有很多种方式,这里先给出纯数字的解法和利用字符串的解法。
1.纯数字的解法通常对时间复杂度和空间复杂度有很高的要求,特别是空间复杂度,不允许创建新的内存空间。
思路:利用整型数字的除以10取整(/)和对10取余(%)运算,将数字逆置,然后比较原数字与新数字是否相等来得出结果,以123454321为例,具体算法如下:
思路:字符串其实就是一个key值是从0开始的连续数字的哈希表,因此我们可以利用String的charAt(i)方法取出首末位数字进行比较,比较中如果发现不相等,马上
退出循环,具体算法如下:
1.纯数字的解法通常对时间复杂度和空间复杂度有很高的要求,特别是空间复杂度,不允许创建新的内存空间。
思路:利用整型数字的除以10取整(/)和对10取余(%)运算,将数字逆置,然后比较原数字与新数字是否相等来得出结果,以123454321为例,具体算法如下:
public Boolean isNumberHuiwen(int n){ if(n<0){ return false; }else if(0<=n&&n<10){ return true ; }else{ int oldn = n;//先将原数字保存一下 int newn = 0;//逆置后的数字 while(n != 0){ newn = newn*10+n%10; //构造数,如0+1,10+2,120+3,1230+4 n/= 10;//去掉末尾数,如12345432,1234543,123454,12345 } return (newn == oldn); } }2.利用字符串的方式
思路:字符串其实就是一个key值是从0开始的连续数字的哈希表,因此我们可以利用String的charAt(i)方法取出首末位数字进行比较,比较中如果发现不相等,马上
退出循环,具体算法如下:
public Boolean isNumberHuiwen(String n){ Boolean flag=true; for(int i=0;i<n.length();i++){ if(n.charAt(i)!=n.charAt(n.length()-i-1)){ flag=false; break; } } return flag; }
相关文章推荐
- 使用接口回调实现--自定义控件的点击事件
- SVN更新失败 解决方法
- 模块化指令应用01(从html文件加载指令模板)
- Linux系统中postgresql双机热备(流复制)
- 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取
- 怎么去除android listview的默认点击效果
- 遍历std::tuple
- 智力题:砝码称重问题
- iOS多线程的初步研究(八)-- dispatch队列
- PCA
- 防止CSRF攻击与protect_from_forgery
- vb25
- 选择排序1到100
- [转]React 入门实例教程
- 冒泡排序
- 用Android访问本地站点---(localhost,10.0.2.2)要区别
- 839 - Not so Mobile
- C# html解析
- mac x Yosemide(10.10) 下安装 jdk 1.7 (jdk 1.8) 要求Mac OS X10.7.3或更高版本解决
- HDU 2544 最短路(Dijkstra算法)