题目:
将数字转为字符串,创建一个数组将字符串逆序排列,由于比较的时候将创建的数组转为数可能会溢出,所以将两段字符串作比较
代码如下:
public class Solution {
public bool IsPalindrome(int x) {
string a=Convert.ToString(x);
char[]b=new char[a.Length];
if(x>=0)
{
for(int i=0;i<a.Length;i++)
b[i]=a[a.Length-i-1];
string c=new string(b);
return a==c?true:false;
}
else return false;
}
}
运行结果:
发现规律:一个数的末位可以由求余符号得到,将此数缩小十倍,迭代进行。
代码如下:
public class Solution {
public bool IsPalindrome(int x) {
if(x<0)
return false;
if(x%10==0&&x!=0)
return false;
int a=x;
int b=0;
while(x>0)
{
b=b*10+x%10;
x=x/10;
}
return a==b;
}
}
运行结果: