力扣算法篇:整数反转
整数反转:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−2^31, 2^31-1],就返回0。
实例:
题解:将整数转换为字符串 反转 再转换成整数
class Solution {
public:
int reverse(int x) {
//整数反转
string s = std::to_string(abs(x));
//字符串反转
std::reverse(s.begin(),s.end());
cout<<s<<endl;
//字符串转为整数
long num;
stringstream ss;
ss<<s;
ss>>num;
//如果原数小于0 加个负号
if(x<0){
num = -num;
}
//判断是否越界
if(num<-pow(2,31) || num>pow(2,31)){
return 0;
}
return num;
}
};
本题中用到的几个c++的点:
(1)字符串反转
std::reverse(s.begin(),s.end());
(2)字符串转为整数
int num;
string s;
stringstream ss;
//将字符串内容输入到ss流中
ss<<s;
//从ss流中读入一个int整数存入num中
ss>>num;
(3)将整数转换为字符串
int x;
string s = std::to_string(abs(x));