zoukankan      html  css  js  c++  java
  • leetcode_1047. 删除字符串中的所有相邻重复项

    给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
    
    在 S 上反复执行重复项删除操作,直到无法继续删除。
    
    在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
    
     
    
    示例:
    
    输入:"abbaca"
    输出:"ca"
    解释:
    例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。
     
    
    提示:
    
    1 <= S.length <= 20000
    S 仅由小写英文字母组成。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/remove-all-adjacent-duplicates-in-string
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    class Solution:
        def removeDuplicates(self, S: str) -> str:
            ls=[]
            for i in range(len(S)):
                if ls and S[i]==ls[-1]:#如果ls不为空且S[i]等于栈顶,出栈
                    ls.pop()
                else:
                    ls.append(S[i])
            s=''
            for x in ls:
                s+=x
            return s
    
    class Solution:
        def removeDuplicates(self, S: str) -> str:
            ls=[]
            for i in range(len(S)):
                if ls and S[i]==ls[-1]:
                    ls.pop()
                else:
                    ls.append(S[i])
            #s=''
            # for x in ls:
            #     s+=x
            return ''.join(ls)
    
  • 相关阅读:
    Win10下 Docker Flask实例
    4.1 线性映射的概念
    桥梁的基本组成和分类
    Qt5字符串编码转换学习
    在右键菜单中添加用Jupyter Notebook打开
    左右手(直角)坐标系叉乘计算公式
    __new__方法与单键实例
    向量组的秩
    从线性组合的角度理解三维运算
    Hexo使用小结
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14084280.html
Copyright © 2011-2022 走看看