【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
仅由数字0
到9
组成num
不含前导零
解题方法:字符串处理(模拟)
从最后一个元素开始向前遍历,遍历到第一个非零元素为止(一定包含非零元素)。
这样就找到了答案字符串的串尾位置,就能返回答案字符串了。
- 时间复杂度 O ( l e n ( n u m ) ) O(len(num)) O(len(num))
- 空间复杂度 O ( 1 ) O(1) O(1),力扣返回值不计入算法空间复杂度
AC代码
C++
class Solution {
public:string removeTrailingZeros(string num) {int loc = num.size() - 1;while (num[loc] == '0') {loc--;}return num.substr(0, loc + 1);}
};
Go
// package mainfunc removeTrailingZeros(num string) string {loc := len(num) - 1for num[loc] == '0' {loc--}return num[0 : loc + 1]
}
Java
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
class Solution:def removeTrailingZeros(self, num: str) -> str:for loc in range(len(num) - 1, -1, -1):if num[loc] != '0':breakreturn num[:loc + 1]
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/140067468