您的位置:首页 > 其它

Leetcode(7)之整数反转

u3860932 2020-01-04 18:11 417 查看

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

题目描述:

解题思路:

维护一个结果数,每次将x除以10取余弹出一位,弹出的数加上结果数乘以10。由于 int.MaxValue = 2147483647, in.MinValue = -2147483648,所以结果数乘以10之前要小于 2147483647/10 并大于 -2147483648/10,如果结果数乘以10之前等于 2147483647/10 或等于 -2147483648/10,那么对应的弹出数就要小于7或者大于-8。

代码:

public int Reverse(int x)
{
int ret = 0;
while (x != 0)
{
int pop = x % 10;
x /= 10;
if (ret > int.MaxValue / 10 || (ret == int.MaxValue / 10 && pop > 7)) return 0;
if (ret < int.MinValue / 10 || (ret == int.MinValue / 10 && pop < -8)) return 0;
ret = 10 * ret + pop;
}
return ret;
}
标签: