【Leetcode】2696. 删除子串后的字符串最小长度

发布时间:2024年01月12日

文章目录

题目

2696. 删除子串后的字符串最小长度
在这里插入图片描述

思路

计算通过删除字符串中的 “AB” 和 “CD” 子串后,可获得的最终字符串的最小长度。
主要思路是使用一个栈来模拟字符串的处理过程,每次遍历字符串时,如果当前字符和栈顶的字符能够组成 “AB” 或 “CD” 子串,就将栈顶元素弹出,表示删除这个子串;否则,将当前字符压入栈中。
在最终,栈中剩余的字符即为无法删除的字符,其个数即为最小长度。

代码

class Solution {
public:
    int minLength(string s) {
        stack<char> stk;
        for(auto t : s) 
        {
            if(stk.size() && ((t == 'B' && stk.top() == 'A') || (t == 'D' && stk.top() == 'C'))) stk.pop();
            else stk.push(t);
        }
        return stk.size();
    }
};
文章来源:https://blog.csdn.net/m0_67724631/article/details/135562917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。