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如何删除字符串中的所有相邻重复项
转载来于:http://scjbc.cn/article/ghigos.html