(听说点赞的人都有好运哦~)
leetcode题解戳这里
0ms代码,击败100%用户!!!
class Solution {
public:
int reverse(int x)
{
if(x==INT_MIN) return 0 ;
int f=1 ;
if(x<0) f=-1 ;
x=abs(x) ;
//基本处理+特判
string str=to_string(x) ; //先化为string类
//reverse
for(int i=0,j=str.size()-1;i<j;i++,j--)
swap(str[i],str[j]) ;
long long ans=0 ; //防止溢出(坑点)
//累加,转换为整数
for(auto s:str)
ans=ans*10+s-'0' ;
//答案处理
if(ans>INT_MAX) return 0 ;
else return (int)ans*f ;
}
};
需要熟练的掌握STL的各种函数
主要使用string,熟练掌握+特判=AC
Q&A
Q1:可以不用string来做吗?
A1:可以,例如可以一位一位存在vector中,只是string较为方便。
Q2:INT_MAX, INT_MIN 可以替换吗?
A2:可以,转成(((1<<30)-1)<<1)+1
,-(((1<<30)-1)<<1)-2
这种传统写法即可。注意加减优先级大于位运算。