【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