7. 整数反转
目录
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。
简单
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [ $ −2^{31} $ , $ 2^{31} −1$ ] ,就返回 0 。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
- $-2^{31} <= x <= 2^{31} - 1$
1 解题思路
-
定义 long 型数据 n
-
当 x 不为 0 时
- 将 n 扩大为原来的十倍(相当于每位的数字向左移一位),同时 n 加上 x 的个位数字
n = n * 10 + x % 10;
- x 整除 10 (相当于删除掉个位)
- 将 n 扩大为原来的十倍(相当于每位的数字向左移一位),同时 n 加上 x 的个位数字
-
当 x 为 0 时结束
- 利用强制类型转换将n转换为int型,若转换前后大小不变则未越界,否则返回 0
示例
以 示例 1 为例:
x | n | while |
---|---|---|
begin | 0 | true |
123 | 3 | true |
12 | 32 | true |
1 | 321 | true |
0 | end | false |
- 对 n 进行强制类型转换,转换前后相等,返回 321
2 代码实现
|
|