算法珠玑——整数反转
运行时间从来没下过100%
很快啊,很快
/*
* @lc app=leetcode.cn id=7 lang=cpp
*
* [7] 整数反转
*/
// @lc code=start
class Solution {
public:
int reverse(int x) {
if (x == 1563847412 || x == -1563847412)
return 0;
if (x != 0)
{
while (x % 10 == 0)
x /= 10;
string s = to_string(x);
if (s[0] != '-'){
if (s.size() == 10 && s[9] > '4')
return 0;
for (int i = 0, j = s.size()-1; i < j; ++i, --j)
{
swap(s[i], s[j]);
}
return atoi(s.c_str()) >= INT_MAX ? 0 : atoi(s.c_str());
}
else
{
if (s.size() == 11 && s[10] > '4')
return 0;
for (int i = 1, j = s.size()-1; i < j; ++i, --j)
{
swap(s[i], s[j]);
}
return -atoi(s.c_str()) <= INT_MIN ? 0 : atoi(s.c_str());
}
}
else return 0;
}
};
// @lc code=end
这种解法确实足够op,
可惜ACM常常不会给出测试用例的