在Python中删除字符串中的所有相邻重复项
假设我们有一个小写字母的字符串S;将执行重复删除操作。这可以通过选择两个相邻且相等的字母并将其删除来完成。
我们将反复从S中删除重复项,直到没有重复项为止。
完成所有这些重复的删除操作后,返回字符串。可以保证答案是唯一的。
假设字符串是“abbacaca”,则答案将是“caca”。首先删除副本bb,然后字符串为“aacaca”,然后删除aa,然后字符串为“caca”,然后没有此类副本。
为了解决这个问题,我们将遵循以下步骤-
定义一个数组st,并初始化i:=0
而我<字符串的长度-
如果st有某个元素,并且st的最后一个元素=st[i],则将i加1,并从st中删除最后一个元素
否则将string[i]添加到st中,将i增加1
最后将st中的所有元素作为字符串连接并返回
示例
让我们看下面的实现以更好地理解-
class Solution(object): def removeDuplicates(self, S): st = [] i = 0 while i < len(S): if len(st)!=0 and st[-1]==S[i]: i+=1 st.pop(-1) else: st.append(S[i]) i+=1 return "".join(i for i in st) ob1 = Solution()print(ob1.removeDuplicates("abbacaca"))
输入值
"abbacaca"
输出结果
"caca"