@ninijia 在 Leetcode每日一题练习 ------ 2696. 删除子串后的字符串最小长度 中发帖
从Leetcode 每日一题练习继续讨论:
2696. 删除子串后的字符串最小长度
2696. Minimum String Length After Removing Substrings
题解
本题和之前做过的一些删除子字符串的题目有些相似,做这个题的时候突然想到这种删除的过程有点像玩过的经典同色消除游戏“祖玛”。黄色的球前后都是绿色的球,消掉黄色的球后绿色的球聚在一起可以再次被消掉,这个过程需要保存“前面存在某种颜色的球”这一状态,同时只有某种颜色的球被消掉后才会暴露出更前面的某种颜色的球。这样一想栈结构已经浮出脑海了,本题使用栈保存这两个子字符串的前置状态(这里是字符串AB中的A和CD中的C)。如果继续遍历时的字符能与栈顶字母匹配则将栈顶字母出栈。一旦不匹配就清空栈,重新入栈。
代码
class Solution {
public:
int minLength(st...