由于要判断一个int型的整数是否是回文数,又不能增加额外的空间,所以用队列和用栈的做法不太可行,我的想法是把这个数倒过来,与输入进行比较,相同,则输入是回文数
代码如下
bool isPalindrome(int x) {
if(x < 0)
return false;
long answer = 0;
int temp = x;
while(temp != 0){
answer = answer*10 + temp;
temp = temp/10;
}
if(answer < -2147483648 || answer > 2147483647)
return false;
return answer == x;
}
由于将一个整数颠倒过来,需要进行越界判断,因此answer用了long型变量,但accepted之后,发现这样的做法并不是最优算法,我也还没想到最优算法,如若有优化方法,会在写文章。
转载请注明原文地址: https://ju.6miu.com/read-33240.html