Reverse Integer - Palindrome Number - 简单模拟

时间:2023-03-09 00:37:03
Reverse Integer - Palindrome Number - 简单模拟

第一个题目是将整数进行反转,这个题实现反转并不难,主要关键点在于如何进行溢出判断。溢出判断再上一篇字符串转整数中已有介绍,本题采用其中的第三种方法,将数字转为字符串,使用字符串比较大小的方法进行比较。

代码如下:

 class Solution {
public:
int reverse(int x) {
int stand[]={,,,,,,,,,};
int getnum[];
int a=,flag=;
if(x>)
flag=;
else
if(x<)
{
flag=-;
x=-x;
}
else
return ;
int count=;
while(x>)
{
getnum[count]=(x%);
x=x/;
count++;
} if(count==)
{
int index=;
for(int i=;i<count;i++)
{
if(stand[i]==getnum[i])
index++;
else
if(stand[i]<getnum[i])
return ;
else
break;
}
if(index==)
{
if(flag==)
return ;
else
return ;
}
} for(int i=;i<count;i++)
a=a*+getnum[i]; return a*flag;
}
};

因为输入也一定最多是10位数,所以数组大小为10足够。

Palindrome Number

第二个题目是寻找回文数,题目要求不要使用多余的空间。不使用多余空间的方法是在将数字从低位向高位不断重组,当进行到一半的时候,必定会相等或者多出一位,除去这一位还是相等的。这样也不用担心溢出等问题。