题目描述:
在不使用额外的内存空间的条件下判断一个整数是否是回文
提示:
负整数可以是回文吗?(比如-1)
如果你在考虑将数字转化为字符串的话,请注意一下不能使用额外空间的限制
你可以将整数翻转。但是,如果你做过题目“Reverse Integer”,你会知道将整数翻转可能会出现溢出的情况,你怎么处理这个问题?
这道题有更具普遍性的解法。
思路:
回文的定义是不管从左至右读还是从右至左读,结果都是一样的。
既然是给定一个整数,就要考虑正负情况,如果是给定一个负数,肯定不满足回文的定义,直接return false即可。在给定是正数的前提下,因为我们需要判断一个个数字,因此,先把整数用to_string函数转化为字符串,然后再比较。
class Solution {
public:
/**
*
* @param x int整型
* @return bool布尔型
*/
bool isPalindrome(int x) {
string s=to_string(x);
if(x<0)return false;
int len=s.size();
for(int i=0;i<len/2;i++){
if(s[i]!=s[len-1-i]){
return false;
}
}
return true;
}
};
记住to_string函数。