在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"

以上是 在Python中删除字符串中的所有相邻重复项 的全部内容, 来源链接: utcz.com/z/351435.html

回到顶部