leetcode 原题链接:https://leetcode.com/problems/reverse-integer/
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
实现代码:
class Solution
{
public:
int reverse(int x)
{
string sx = "";
int flag = 1;
if (x >= 0)
{
while (x != 0)
{
sx = char('0' + x % 10) + sx;
x /= 10;
}
} else
{
flag = -1;
while (x != 0)
{
sx = char('0' - x % 10) + sx;
x /= 10;
}
}
string sr = "";
for (int i = 0; i < sx.size(); i++)
{
sr = sx[i] + sr;
}
if (flag > 0 && strCompare(sr, "2147483647"))
{
return 0;
}
if (flag < 0 && strCompare(sr, "2147483648"))
{
return 0;
}
int ans = 0;
for (int i = 0; i < sr.size(); i++)
{
ans = ans * 10 + (sr[i] - '0');
}
return flag*ans;
}
bool strCompare(string s1, string s2)
{
/*
s1 >= s2 返回true
s1 < s2 返回false
*/
if (s1.size() > s2.size())
return true;
else if (s1.size() < s2.size())
return false;
return s1 > s2;
}
};