跳到主要内容

index

3174. 清除数字

给你一个字符串 s 。

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

  • 删除 第一个数字字符 以及它左边 最近 的 非数字 字符。

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

示例 1:

输入: s = "abc"

输出:"abc"

解释:

字符串中没有数字。

示例 2:

输入: s = "cb34"

输出:""

解释:

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

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

提示:

  • 1 <= s.length <= 100
  • s 只包含小写英文字母和数字字符。
  • 输入保证所有数字都可以按以上操作被删除。

https://leetcode.cn/problems/clear-digits/description/

题解

HX

class Solution {
public:
string clearDigits(string s) {
string res = "";
for (int i = 0; i < s.size(); ++i) {
if (s[i] >= '0' && s[i] <= '9') {
if (res.size())
res.pop_back();
}
else
res += s[i];
}
return res;
}
};
C++

0x3f: 用栈维护

class Solution {
public:
string clearDigits(string s) {
string st;
for (char c : s) {
if (isdigit(c)) {
st.pop_back();
} else {
st += c;
}
}
return st;
}
};
C++
请作者喝奶茶:
Alipay IconQR Code
Alipay IconQR Code
本文遵循 CC CC 4.0 BY-SA 版权协议, 转载请标明出处
Loading Comments...