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

题目链接:LeetCode 1047. 删除字符串中的所有相邻重复项

题意:

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

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

解题思路:

  1. 开一个栈,然后扫描整个字符串。
  2. 如果当前字符和栈顶元素不相等,则当前字符入栈;如果相等,则当前栈顶元素出栈。
  3. 最后将栈中元素全部出栈,按正序拼成答案即可。

完整代码如下:

func removeDuplicates(s string) string {
    var res []byte 
    for i:=0;i<len(s);i++{
        if len(res) != 0 && res[len(res)-1] == s[i] {
            res = res[:len(res)-1]
        }else{
            res=append(res,s[i])
        }
    }
    return string(res)
}
posted @ 2023-05-14 18:25  小星code  阅读(33)  评论(0)    收藏  举报