comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
简单 |
1164 |
第 347 场周赛 Q1 |
|
给你一个用字符串表示的正整数 num
,请你以字符串形式返回不含尾随零的整数 num
。
示例 1:
输入:num = "51230100" 输出:"512301" 解释:整数 "51230100" 有 2 个尾随零,移除并返回整数 "512301" 。
示例 2:
输入:num = "123" 输出:"123" 解释:整数 "123" 不含尾随零,返回整数 "123" 。
提示:
1 <= num.length <= 1000
num
仅由数字0
到9
组成num
不含前导零
我们可以从后往前遍历字符串,遇到第一个不是 0
的字符时停止遍历,然后返回从头开始到这个字符的子串。
时间复杂度
class Solution:
def removeTrailingZeros(self, num: str) -> str:
return num.rstrip("0")
class Solution {
public String removeTrailingZeros(String num) {
int i = num.length() - 1;
while (num.charAt(i) == '0') {
--i;
}
return num.substring(0, i + 1);
}
}
class Solution {
public:
string removeTrailingZeros(string num) {
while (num.back() == '0') {
num.pop_back();
}
return num;
}
};
func removeTrailingZeros(num string) string {
i := len(num) - 1
for num[i] == '0' {
i--
}
return num[:i+1]
}
function removeTrailingZeros(num: string): string {
let i = num.length - 1;
while (num[i] === '0') {
--i;
}
return num.substring(0, i + 1);
}
impl Solution {
pub fn remove_trailing_zeros(num: String) -> String {
let mut i = num.len() - 1;
while num.chars().nth(i) == Some('0') {
i -= 1;
}
num[..i + 1].to_string()
}
}