猫猫说了算
理解是偶然,误解是常态。

【算法】1047. 删除字符串中的所有相邻重复项

远浅发表于: 2021-03-09 17:25分类: 技术

LeetCode 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

输入:"abbaca"

输出:"ca"

解释:

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是 此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

题解

var removeDuplicates = function(S) {
    // 使用数组存储字符遍历结果
    const stock = [];
    for(const item of S){
        // 如果相邻的相同就出栈
        if(stock[stock.length-1]==item){
            stock.pop()
        }else{
            // 不同就入栈
            stock.push(item)
        }
    }
    return stock.join("")
};
赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
文章评论
暂无任何评论,快去发表吧~