comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
Easy |
1164 |
Weekly Contest 347 Q1 |
|
Given a positive integer num
represented as a string, return the integer num
without trailing zeros as a string.
Example 1:
Input: num = "51230100" Output: "512301" Explanation: Integer "51230100" has 2 trailing zeros, we remove them and return integer "512301".
Example 2:
Input: num = "123" Output: "123" Explanation: Integer "123" has no trailing zeros, we return integer "123".
Constraints:
1 <= num.length <= 1000
num
consists of only digits.num
doesn't have any leading zeros.
We can traverse the string from the end to the beginning, stopping when we encounter the first character that is not 0
. Then, we return the substring from the beginning to this character.
The time complexity is
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()
}
}