Python程序:去除字符串中重复字符


假设我们有一个字符串s。我们需要移除所有之前已经出现过的重复字符。最终字符串的字符顺序应与原始字符串相同。

我们可以使用有序字典来维护字符的插入顺序。值将是这些字符的频率,但是这里的频率值并不重要。在形成字典之后,我们可以简单地取键并连接它们以获得字符串。

因此,如果输入类似于s = "bbabcaaccdbaabababc",则输出将为"bacd"。

  • d := 一个字典,其中键按照其插入顺序存储
  • 对于字符串s中的每个字符c,执行以下操作:
    • 如果c不存在于d中,则
      • d[c] := 0
    • d[c] := d[c] + 1
  • 按正确的顺序将键连接起来以构成输出字符串并返回。

示例

让我们看看下面的实现,以便更好地理解:

from collections import OrderedDict
def solve(s):
   d = OrderedDict()
   for c in s:
      if c not in d:
         d[c] = 0
      d[c] += 1

   return ''.join(d.keys())

s = "bbabcaaccdbaabababc"
print(solve(s))

输入

"bbabcaaccdbaabababc"

输出

"bacd"

更新于: 2021年10月12日

8K+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.