第62天(中等题 数据结构)
打卡第六十二天
2道中等题

题目:

思路:


代码:
class Solution {
public:
string removeDuplicates(string s, int k) {
stack<int> counts;
for (int i = 0; i < s.size(); ++i) {
if (i == 0 || s[i] != s[i - 1]) {// 是第一个字符或者当前字符与前一个字符不同
counts.push(1); // 计数为1
}
else if (++counts.top() == k) { // 计数+1,达到k
counts.pop(); // 弹出栈顶计数
s.erase(i - k + 1, k); // 删除从 i-k+1 开始的k个字符
i = i - k;// 删除了k个字符,索引回退k位
}
}
return s;
}
};
耗时≈一小时 明天继续

浙公网安备 33010602011771号