今天解决了一个leetcode上的判断是否为回文数的题目。
我的思路是这样的:将这个数的每一位数字存到一个vector中,然后设置vector的头和尾为left和right,将left和right上的数进行比较,如果相等,则left++,right--。如果最后left==vector.size(),right==-1,则为回文数,否则不是。
代码如下:
bool isPalindrome(int x) {
vector<int> num;
if (x < 0) {
return false;
}
else if (x==0)
{
return true;
}
else {
while (x > 0) {
num.push_back(x % 10);
x = x / 10;
}
int left = 0, right = num.size() - 1;
while (left < num.size() && right >= 0) {
if (num[left] == num[right]) {
left++;
right--;
}
else {
break;
}
}
if (left == num.size() && right == -1) {
return true;
}
else {
return false;
}
}
}
运行时间为: