7
class Solution {
public:
int reverse(int x) {
int a=0;
while(x!=0)
{
if((a>INT_MAX/10||a==INT_MAX/10&&x%10>7)||(a<INT_MIN/10||a==INT_MIN/10&&x%10<-8))
return 0;
a=a*10+x%10;
x=x/10;
}
return a;
}
};
8
class Solution {
public:
int myAtoi(string s) {
int i=0,l=s.length(),f=1;
while(i<l&&s[i]==' ')
i++;
if(i==l) return 0;
if(s[i]=='-')
{
f=-1;
i++;
}
else if(s[i]=='+')
i++;
int sum=0;
while(i<l)
{
if(s[i]>'9'||s[i]<'0') break;
if(sum>INT_MAX/10||(sum==INT_MAX/10&&s[i]-'0'>INT_MAX%10)) return INT_MAX;
if(sum<INT_MIN/10||(sum==INT_MIN/10&&s[i]-'0'>-(INT_MIN%10))) return INT_MIN;
sum=sum*10+f*(s[i]-'0');
i++;
}
return sum;
}
};
9
class Solution {
public:
bool isPalindrome(int x) {
int a=0,x1=x;
while(x!=0)
{
if((a>INT_MAX/10||a==INT_MAX/10&&x%10>7)||(a<INT_MIN/10||a==INT_MIN/10&&x%10<-8))
return 0;
a=a*10+x%10;
x=x/10;
}
return a>=0&&a==x1;
}
};