题目描述:
对于输入的一个整数,对它进行翻转操作。但是反转后的数字不能超过32-bit signed integer range: [−231, 231 − 1].
解题思路:
(有的解题思路复杂,但是多思考思考没有坏处~~)
- 用long long型来存储翻转后的数字,如果数字超过INT_MAX,则输出0,否则输出翻转后的数字。
class Solution {
public:
int reverse(int x) {
long long reverse = 0;
bool ispositive = true;
if (x < 0) {
ispositive = false; // 判断输入数字的正负
x *= -1; // 变为正数
}
while (x > 0){ //翻转数字
reverse = reverse * 10 + x % 10;
x /= 10;
}
if (reverse > INT_MAX) return 0;
if (ispositive)
return reverse;
else
return -reverse;
}
};
2.用字符数组存储读入的数字,判断长度和每一位的数字是否超过INT_MAX的每一位数字。
网友评论