数字反转普通版
题目描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入格式
输入共 1 行,一个整数 N。
输出格式
输出共 1 行,一个整数,表示反转后的新数。
数据范围
-1,000,000,000 ≤ N≤ 1,000,000,000。
输入样例1:
1 | 123 |
输出样例1:
1 | 321 |
输入样例2:
1 | -380 |
输出样例2:
1 | -83 |
注意事项
- 当输入的整数为负数时,需要在反转后保持负号。
- 反转后的整数不能超过 int 类型的范围。
代码实现
1 |
|
时间复杂度
- 时间复杂度:O(logn),其中 n 为输入的整数。
- 空间复杂度:O(1)。
代码解释
- 我们使用一个循环来反转整数的每一位。
- 在每一次循环中,我们将整数 n 对 10 取模,得到 n 的个位数,将个位数添加到结果 res 的末尾。
- 然后,我们将整数 n 除以 10,去掉个位数。
- 重复以上步骤,直到整数 n 变为 0。
- 最后,输出结果 res。