Palindrome Number
来源:互联网 发布:网络电影播放器排行榜 编辑:程序博客网 时间:2024/06/06 13:11
Determine whether an integer is a palindrome. Do this without extra space.
题目解析:
判断一个整数是否是回文数,
“回文”是指正读反读都能读通的句子,它是古今中外都有的一种修辞方式和文字游戏,如“我为人人,人人为我”等。在数学中也有这样一类数字有这样的特征,成为回文数(palindrome number)。
设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。
0是回文数,负数、小数不是回文数,
解题方法一:
我们用数组将整数的各个位存储起来,之后判断首位两个数不断向中间靠拢时,两个值是否相等就可判断这个数是否是回文,代码如下:
class Solution {public: bool isPalindrome(int x) { bool result=true; if (x==0){return result;}if (x<0){return false;}int temp;vector<int >array;while(x/10!=0){temp=x%10;x=x/10;array.push_back(temp);}if (x%10!=0){array.push_back(x%10);}for (vector<int>::iterator iter=array.begin(),iter1=array.end()-1;iter!=array.end(),iter1!=array.begin();iter++,iter1--){if (*iter!=*iter1){result=false;break;}}return result; }};优点:方法直观通用
缺点:运算复杂,占用额外的空间
方法二:
求整数n的各个位逆序之后所组成的整数的值,如果两个值相等就是回文数,当然了,像10,100,220,最后位有0的直接判断不是回文。
其中求整数的reverse 值仿照http://blog.csdn.net/sinat_24520925/article/details/45558769 的方法二,具体算法如下:
代码如下:
class Solution {public: bool isPalindrome(int x) { if(x<0||(x!=0&&x%10==0)) return false; int sum=0; int temp=x; while(temp) { sum=sum*10+temp%10; temp/=10; } return (x==sum); }};
0是
0 0
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- Palindrome Number
- The Roatin Games poj
- 一笔画问题 NYOJ
- Java字符串题目--删除给定字符串中出现次数最少的字符
- 黑马程序员---description方法
- 103. Binary Tree Zigzag Level Order Traversal
- Palindrome Number
- Cow Exhibition 解题报告
- hbase通过row key 的前缀查询记录
- 2015 ICL, Finals, Div. 1 Ceizenpok’s formula(组合数取模,扩展lucas定理+中国剩余定理)
- 串口使用
- 转化Csv,excel到语言相关的文件
- HTML学习笔记
- iOS开发概述 - 16.CAAnimation(核心动画实例)
- PyQt5初级教程--PyQt5中的部件II[9/13]