列表

详情


100324. 清除数字

给你一个字符串 s 。

你的任务是重复以下操作删除 所有 数字字符:

请你返回删除所有数字字符以后剩下的字符串。

 

示例 1:

输入:s = "abc"

输出:"abc"

解释:

字符串中没有数字。

示例 2:

输入:s = "cb34"

输出:""

解释:

一开始,我们对 s[2] 执行操作,s 变为 "c4" 。

然后对 s[1] 执行操作,s 变为 "" 。

 

提示:

原站题解

去查看

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

php 解法, 执行用时: 15 ms, 内存消耗: 19.9 MB, 提交时间: 2024-09-05 15:55:35

class Solution {

    /**
     * @param String $s
     * @return String
     */
    function clearDigits($s) {
        $st = [];
        foreach ( str_split($s) as $c ) {
            if ( is_numeric($c) ) {
                array_pop($st);
            } else {
                $st[] = $c;
            }
        }
        return implode('', $st);
    }
}

javascript 解法, 执行用时: 69 ms, 内存消耗: 51.7 MB, 提交时间: 2024-09-05 15:50:08

/**
 * @param {string} s
 * @return {string}
 */
var clearDigits = function(s) {
    const st = [];
    for (const c of s) {
        if ('0' <= c && c <= '9') {
            st.pop();
        } else {
            st.push(c);
        }
    }
    return st.join('');
};

rust 解法, 执行用时: 3 ms, 内存消耗: 2 MB, 提交时间: 2024-09-05 15:49:55

impl Solution {
    pub fn clear_digits(s: String) -> String {
        let mut st = vec![];
        for c in s.bytes() {
            if c.is_ascii_digit() {
                st.pop();
            } else {
                st.push(c);
            }
        }
        unsafe { String::from_utf8_unchecked(st) }
    }
}

python3 解法, 执行用时: 40 ms, 内存消耗: 16.4 MB, 提交时间: 2024-06-10 00:13:14

class Solution:
    def clearDigits(self, s: str) -> str:
        st = []
        for c in s:
            if c.isdigit():
                st.pop()
            else:
                st.append(c)
        return ''.join(st)

java 解法, 执行用时: 1 ms, 内存消耗: 41.6 MB, 提交时间: 2024-06-10 00:12:59

class Solution {
    public String clearDigits(String s) {
        StringBuilder st = new StringBuilder();
        for (char c : s.toCharArray()) {
            if (Character.isDigit(c)) {
                st.deleteCharAt(st.length() - 1);
            } else {
                st.append(c);
            }
        }
        return st.toString();
    }
}

cpp 解法, 执行用时: 4 ms, 内存消耗: 7.5 MB, 提交时间: 2024-06-10 00:12:47

class Solution {
public:
    string clearDigits(string s) {
        string st;
        for (char c : s) {
            if (isdigit(c)) {
                st.pop_back();
            } else {
                st += c;
            }
        }
        return st;
    }
};

golang 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2024-06-10 00:12:36

// 用栈维护,遇到数字则弹出栈顶,否则把字符入栈。最后从栈底到栈顶就是答案。
func clearDigits(s string) string {
	st := []rune{}
	for _, c := range s {
		if unicode.IsDigit(c) {
			st = st[:len(st)-1]
		} else {
			st = append(st, c)
		}
	}
	return string(st)
}

上一题