LeetCode的第9题Palindrome Number
原题如下:
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Input: 121
Output: true
Example 2:
Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Follow up:
Coud you solve it without converting the integer to a string?
题目翻译:确定整数是否为回文。整数在读取与前向相同的回文时是回文。
原题链接
题目分析:该题容易想到建立数组将输入数据X的每个位进行存储,然后对其进行判断。若x从左边读向右边与从右边读向左边相同,则为回文数。那么负数一定不是回文数(由于负号的存在)。同时0也一定是回文数。在进行判断时需要注意的是在进行存储x的位时,要建立一个计数变量来记录x的位数,方便后面的判断阶段。
AC代码如下:
class Solution
{
public:
bool isPalindrome(int x)
{
if(x<0) return false;
if(x==0) return true;
int a[10]={0};
int yushu=0;
int count=0;//用来记录存储的位数
for(int i=0;i<10;)
{
while(x)
{
yushu=x%10;
a[i]=yushu;
count++;
i++;
x=x/10;
}
break;
}
//进行判断
for(int j=0;j<count;j++)
{
if(a[j]==a[count-1-j]){ }
else return false;
}
return true;
}
};
还没有评论,来说两句吧...