网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

leetcode如何删除字符串中的所有相邻重复项

这篇文章主要为大家展示了“leetcode如何删除字符串中的所有相邻重复项”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“leetcode如何删除字符串中的所有相邻重复项”这篇文章吧。

创新互联主营雅安网站建设的网络公司,主营网站建设方案,手机APP定制开发,雅安h5小程序开发搭建,雅安网站营销推广欢迎雅安等地区企业咨询

一、题目内容

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

在 S 上反复执行重复项删除操作,直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

示例:

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

提示:

1 <= S.length <= 20000
S 仅由小写英文字母组成。

二、解题思路

用栈做,从左到右遍历,每次存储当前字符,如果当前字符和栈中刚入栈的字符一致,则直接pop剔除,然后再看下一个字符,如此循环,直到遍历结束。

三、代码

class Solution:
    def removeDuplicates(self, S: str) -> str:
        res = []
        for s in S:
            if res and res[-1] == s:
                res.pop()
            else:
                res.append(s)
        return "".join(res)


if __name__ == '__main__':
    s = Solution()
    S = "abbaca"
    ans = s.removeDuplicates(S)
    print(ans)

以上是“leetcode如何删除字符串中的所有相邻重复项”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享标题:leetcode如何删除字符串中的所有相邻重复项
本文URL:http://bjjierui.cn/article/ghigos.html

其他资讯