列表

详情


2710. 移除字符串中的尾随零

给你一个用字符串表示的正整数 num ,请你以字符串形式返回不含尾随零的整数 num

 

示例 1:

输入:num = "51230100"
输出:"512301"
解释:整数 "51230100" 有 2 个尾随零,移除并返回整数 "512301" 。

示例 2:

输入:num = "123"
输出:"123"
解释:整数 "123" 不含尾随零,返回整数 "123" 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: string removeTrailingZeros(string num) { } };

rust 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2024-06-29 13:42:51

impl Solution {
    pub fn remove_trailing_zeros(num: String) -> String {
        num.trim_end_matches('0').to_string()
    }
}

javascript 解法, 执行用时: 76 ms, 内存消耗: 51.6 MB, 提交时间: 2024-06-29 13:41:56

/**
 * @param {string} num
 * @return {string}
 */
var removeTrailingZeros = function(num) {
    return num.replace(/0*$/, '');
};

java 解法, 执行用时: 1 ms, 内存消耗: 42.4 MB, 提交时间: 2023-05-31 15:18:31

class Solution {
    public String removeTrailingZeros(String num) {
        // 倒序遍历
        int index = num.length() - 1;
        for (; index >= 0; index--) {
            if (num.charAt(index) != '0') {
                // 找到尾部第一个不为0的索引
                break;
            }
        }

        // 截取字符串
        return num.substring(0, index + 1);
    }
}

cpp 解法, 执行用时: 4 ms, 内存消耗: 8.5 MB, 提交时间: 2023-05-31 15:17:59

class Solution {
public:
    string removeTrailingZeros(string s) {
        s.erase(find_if(s.rbegin(), s.rend(), [](auto c) { return c != '0'; }).base(), s.end());
        return s;
    }
};

java 解法, 执行用时: 8 ms, 内存消耗: 42.8 MB, 提交时间: 2023-05-31 15:17:43

class Solution {
    public String removeTrailingZeros(String num) {
        return num.replaceAll("0+$", ""); // 注:可能是 O(n^2),推荐手写
    }
}

golang 解法, 执行用时: 8 ms, 内存消耗: 4 MB, 提交时间: 2023-05-31 15:17:25

func removeTrailingZeros(num string) string {
	return strings.TrimRight(num, "0")
}

python3 解法, 执行用时: 48 ms, 内存消耗: 16.2 MB, 提交时间: 2023-05-31 15:16:48

class Solution:
    def removeTrailingZeros(self, num: str) -> str:
        return num.rstrip('0')

上一题