3726. 移除十进制表示中的所有零
题目描述
给你一个正整数n。
返回一个整数,该整数是将 n 的十进制表示中所有的零都移除后得到的结果。
示例 1:
输入: n = 1020030
输出: 123
解释:
从 1020030 中移除所有的零后,得到 123。
示例 2:
输入: n = 1
输出: 1
解释:
1 的十进制表示中没有零,因此结果为 1。
提示:
1 <= n <= 1015
解法
方法一:模拟
我们从 \(n\) 的最低位开始,逐位检查每个数字。如果该数字不为零,则将其添加到结果中。我们还需要一个变量来跟踪当前的位数,以便正确地构建最终的整数。
具体来说,我们可以使用一个变量 \(k\) 来表示当前的位数,然后从最低位开始逐位检查每个数字。如果该数字不为零,则将其乘以 \(k\) 并加到结果中,同时将 \(k\) 乘以 10,以便在下一位时使用。
最终,我们将得到一个不包含零的整数。
时间复杂度 \(O(d)\),其中 \(d\) 是整数 \(n\) 的位数。空间复杂度 \(O(1)\)。
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |