#include <iostream>
#include <sstream>
using namespace std;
class Solution {
public:
bool isPalindrome1(int x) {
if (x<0) return false;
if (x==0||x/10<1) return true;
int number = 0;
int temp = x;
for (int i = 0; temp >= 1; i++) {
temp /= 10;
number++;
}
int nums[number];
int div = 1;
while (x / div >= 10) div *= 10;
for (int i = 0; i < number; i++) {
nums[i] = x / div;
x %= div;
div/=10;
}
for (int i = 0; i < number / 2; i++) {
if (nums[i] != nums[number - i - 1]) {
return false;
}
}
return true;
}
bool isPalindrome2( int x ){
ostringstream foo;
foo << x;
string str1 = foo.str();
string str2 = foo.str();
reverse(str1.begin(),str1.end());
if (str1 == str2) return true ;
else
return false;
}
bool isPalindrome3 (int x){
if (x<0) return false;
if (x<10) return true ;
long value=0,
int number=0;
int temp =x ;
while (temp !=0){
number = temp % 10;
(value *10 +number> INT_MAX )
value = value * 10 + number ;
temp /= 10;
}
return x==value;
}
};
int main() {
int x= 100021;
Solution a;
bool flag=a.isPalindrome3(x);
cout<<flag<<endl;
return 0;
}
Leetcode第9题:回文数
最新推荐文章于 2022-10-26 18:02:14 发布