2710.移除字符串中的尾随零

【LetMeFly】2710.移除字符串中的尾随零:模拟

力扣题目链接:https://leetcode.cn/problems/remove-trailing-zeros-from-a-string/

给你一个用字符串表示的正整数 num ,请你以字符串形式返回不含尾随零的整数 num

 

示例 1:

输入:num = "51230100"
输出:"512301"
解释:整数 "51230100" 有 2 个尾随零,移除并返回整数 "512301" 。

示例 2:

输入:num = "123"
输出:"123"
解释:整数 "123" 不含尾随零,返回整数 "123" 。

 

提示:

  • 1 <= num.length <= 1000
  • num 仅由数字 09 组成
  • num 不含前导零

解题方法:字符串处理(模拟)

从最后一个元素开始向前遍历,遍历到第一个非零元素为止(一定包含非零元素)。

这样就找到了答案字符串的串尾位置,就能返回答案字符串了。

  • 时间复杂度$O(len(num))$
  • 空间复杂度$O(1)$,力扣返回值不计入算法空间复杂度

AC代码

C++

1
2
3
4
5
6
7
8
9
10
class Solution {
public:
string removeTrailingZeros(string num) {
int loc = num.size() - 1;
while (num[loc] == '0') {
loc--;
}
return num.substr(0, loc + 1);
}
};

Go

1
2
3
4
5
6
7
8
9
// package main

func removeTrailingZeros(num string) string {
loc := len(num) - 1
for num[loc] == '0' {
loc--
}
return num[0 : loc + 1]
}

Java

1
2
3
4
5
6
7
8
9
class Solution {
public String removeTrailingZeros(String num) {
int loc = num.length() - 1;
while (num.charAt(loc) == '0') {
loc--;
}
return num.substring(0, loc + 1);
}
}

Python

1
2
3
4
5
6
class Solution:
def removeTrailingZeros(self, num: str) -> str:
for loc in range(len(num) - 1, -1, -1):
if num[loc] != '0':
break
return num[:loc + 1]

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/140067468


2710.移除字符串中的尾随零
https://blog.letmefly.xyz/2024/06/29/LeetCode 2710.移除字符串中的尾随零/
作者
Tisfy
发布于
2024年6月29日
许可协议