使用 Python 删除字符串中所有相邻的重复项

pythonserver side programmingprogramming更新于 2025/11/2 10:20:17

假设我们有一个由小写字母组成的字符串 S;将执行重复项删除操作。这将通过选择两个相邻且相同的字母并将其删除来完成。

我们将反复从 S 中删除重复项,直到没有重复项。

在完成所有此类重复项删除后返回字符串。保证答案是唯一的。

假设字符串为"abbacaca",则答案为"caca"。首先删除重复项bb,则字符串为"aacaca",然后删除aa,则字符串为"caca",则不存在此类重复项。

要解决这个问题,我们将遵循以下步骤−

  • 定义一个数组st,并初始化i := 0
  • 当i < 字符串长度−
    • 如果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"

相关文章


有用资源