3783. 整数的镜像距离
题目描述
给你一个整数 n。
定义它的 镜像距离 为:abs(n - reverse(n)),其中 reverse(n) 表示将 n 的数字反转后形成的整数。
返回表示 n 的镜像距离的整数。
其中,abs(x) 表示 x 的绝对值。
示例 1:
输入: n = 25
输出: 27
解释:
reverse(25) = 52。- 因此,答案为
abs(25 - 52) = 27。
示例 2:
输入: n = 10
输出: 9
解释:
reverse(10) = 01,即 1。- 因此,答案为
abs(10 - 1) = 9。
示例 3:
输入: n = 7
输出: 0
解释:
reverse(7) = 7。- 因此,答案为
abs(7 - 7) = 0。
提示:
1 <= n <= 109
解法
方法一:模拟
我们定义一个函数 \(\text{reverse}(x)\) 来反转整数 \(x\) 的数字。具体地,我们初始化一个变量 \(y\) 为 \(0\),然后不断地将 \(x\) 的最后一位数字添加到 \(y\) 的末尾,并将 \(x\) 去掉最后一位,直到 \(x\) 变为 \(0\)。最终 \(y\) 即为反转后的整数。
接下来,我们计算整数 \(n\) 的镜像距离,即 \(\text{abs}(n - \text{reverse}(n))\),并返回结果。
时间复杂度 \(O(\log n)\),空间复杂度 \(O(1)\),其中 \(n\) 是输入整数的大小。
1 2 3 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 | |