题解 | #反转数字#
反转数字
http://www.nowcoder.com/practice/1a3de8b83d12437aa05694b90e02f47a
思路:使用to_string将int转为string,再利用stringstream流将string转为int,过程中要另外将符号存起来。判断是否溢出可以用更大的long long 保存结果,比较和int是否相等,不相等时溢出。
class Solution {
public:
/**
*
* @param x int整型
* @return int整型
*/
int reverse(int x) {
int sign=1;
if(x<0) sign=-1;
x*=sign;
string str=to_string(x);
::reverse(str.begin(),str.end());
stringstream s_stream{};
s_stream<<str;
int val{};
long long int val_full{};
s_stream>>val_full;
val=val_full;
val_full*=sign;
val*=sign;
if(val!=val_full) return 0;
else return val;
}
};