题目链接:LeetCode 1047. 删除字符串中的所有相邻重复项
题意:
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
解题思路:
- 开一个栈,然后扫描整个字符串。
- 如果当前字符和栈顶元素不相等,则当前字符入栈;如果相等,则当前栈顶元素出栈。
- 最后将栈中元素全部出栈,按正序拼成答案即可。
完整代码如下:
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)
}
标签:1047,删除,重复,相邻,字符串,LeetCode
From: https://www.cnblogs.com/lxing-go/p/17399845.html