1、题目:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
2、解决方法:
(1)利用to_string方法将int类型的x转为string类型的str_x。
(2)利用泛型算法中的reverse方法将str_x进行反转。
(3)利用stoi方法将str_x转为int类型并赋值给x。
其中需要注意的是:
(1)x为负时,reverse从str_x的begin()+1位置开始反转。
(2)对于反转的值超出int范围,此时运行会出错,需要加个异常处理,返回0。
代码如下:
class Solution {
public:
int reverse(int x) {
string str_x = to_string(x);
if (x < 0)
std::reverse(str_x.begin() + 1, str_x.end());
else
std::reverse(str_x.begin(), str_x.end());
try {
x = stoi(str_x);
} catch (exception e) {
return 0;
}
return x;
}
};