【LeetCode每日一题】2696. 删除子串后的字符串最小长度(调用栈)

2024-1-10

文章目录

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

思路:调用栈

1.使用双端队列实现栈

2.枚举字符串中的所有字符

3.判断当前字符和栈顶元素是否匹配.如果匹配,则弹出栈顶元素,如果不匹配,则将当前字符入栈

4.在栈中预先放入一个空字符,这样就不需要在遍历字符串时判断栈是否为空了,最后返回栈的大小减一

java 复制代码
public int minLength(String s) {
    Deque<Character> stack = new ArrayDeque<>(); // 使用双端队列实现栈
    stack.push(' '); // 在栈底添加一个空格作为哨兵元素
    for (char c : s.toCharArray()) { // 枚举字符串中的所有字符
        if ((c == 'B' && stack.peek() == 'A') || (c == 'D' && stack.peek() == 'C')) { // 判断当前字符和栈顶元素是否匹配
            stack.pop(); // 如果匹配,则弹出栈顶元素
        } else {
            stack.push(c); // 如果不匹配,则将当前字符入栈
        }
    }
    return stack.size() - 1; // 返回栈的大小减去哨兵元素的个数,即为最小长度
    }  

点击移步博客主页,欢迎光临~

相关推荐
晨晖213 小时前
顺序查找:c语言
c语言·开发语言·算法
LYFlied13 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
七禾页丫13 小时前
面试记录12 软件(c++)工程师
c++·面试·职场和发展
Salt_072814 小时前
DAY44 简单 CNN
python·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
货拉拉技术14 小时前
AI拍货选车,开启拉货新体验
算法
MobotStone14 小时前
一夜蒸发1000亿美元后,Google用什么夺回AI王座
算法
Wang2012201314 小时前
RNN和LSTM对比
人工智能·算法·架构
xueyongfu14 小时前
从Diffusion到VLA pi0(π0)
人工智能·算法·stable diffusion
永远睡不够的入14 小时前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems952714 小时前
二叉树深搜算法练习(一)
数据结构·算法