🔗 🟢 2710. Remove Trailing Zeros From a String 1165

tags: Weekly Contest 347 字串(String)

題意

給定一個用字串表示的正整數 numnum,將其移除 尾隨零(trailing zeros) 後以字串形式返回。

約束條件

  • 1num.length10001 \leq \text{num.length} \leq 1000
  • numnum 由數字組成。
  • numnum 不會有前導零。

思路:由後往前遍歷

從字串的最後一個字元開始,若是 '0' 則將其移除,直到遇到不是 '0' 的字元為止。

由於題目保證了 numnum 不會有前導零,因此不需要考慮移除後字串為空的情況。

複雜度分析

  • 時間複雜度:O(n)\mathcal{O}(n) ,其中 nn 為字串 numnum 的長度。
  • 空間複雜度:O(1)\mathcal{O}(1) ,只需要常數空間。
1
2
3
4
5
6
7
class Solution:
def removeTrailingZeros(self, num: str) -> str:
# return num.rstrip('0')
lst = list(num)
while lst[-1] == '0':
lst.pop()
return ''.join(lst)
1
2
3
4
5
6
7
class Solution {
public:
string removeTrailingZeros(string num) {
while (num.back() == '0') num.pop_back();
return num;
}
};

寫在最後

Cover photo is generated by @たろたろ, thanks for their work!