【问题标题】:Find 2nd repeating symbol in string [closed]在字符串中查找第二个重复符号[关闭]
【发布时间】:2016-10-09 15:06:19
【问题描述】:

我有一个字符串,例如 210132。如何在字符串中找到第二个重复符号(在本例中为 2)?

【问题讨论】:

  • 我认为这里有很多算法可用于字符串中的重复聊天。仍然在 java 的答案部分中找到我的解决方案。你可以把它转换成python
  • 您是否在网上任何地方寻找答案?当我在 Google 中输入“在字符串 python 中查找重复字符”时,我会得到几个解决方案的链接。
  • @MichaelMaggs ,如果我的任务是找到所有重复符号和/或它们都重复多少次,那么您建议的解决方案将是解决方案,而我的目标是找到 第二个重复符号
  • 我投票结束这个问题,因为它是一个零努力的需求转储。

标签: python programming-languages


【解决方案1】:

从第二个字符开始遍历字符串中的每个字符(因为第一个字符不能重复),跟踪当前位置。

在该位置之前的字符串部分中搜索该字符。

for pos, ch in enumerate(mystring[1:]):
    if ch in mystring[:pos+1]:
        print ch

【讨论】:

  • 非常感谢,这就是我需要的 95%。唯一的问题是,如果符号出现 n>=3 次,则输出显示此符号 n-1 次。如何仅打印重复的符号1次?
  • @NightStallion。该算法将在字符串210132 中找到2 之前找到1。这是你想要的吗?
  • @ekhumoro,不完全是,但至少它显示了重复的顺序
  • @NightStallion。那么你想在重复的字符串中找到first字符,然后得到重复字符的位置?所以对于210132,它将打印5(从零开始计数)。
  • @ekhumoro,不,不,我想找到 second 重复字符并打印出来。在字符串 210132 1 第一个重复,2第二个重复,我要输出2,我的思路清晰吗?
【解决方案2】:

我终于解决了我的任务,感谢@John Gordon 提出使用 enumerate 函数的想法

print('Enter string')    
while 1 > 0:
    string = input()
    if string == 'stop':
        break
    result = list()
    for pos, ch in enumerate(string[1:]):
        if ch in string[:pos+1]:
            result.append(ch)
    if len(result) < 2:
        print('No second repeating character.Enter another string')
        continue
    print(result[1],'is the second repeating character')

【讨论】:

    猜你喜欢
    • 2019-03-01
    • 2017-04-25
    • 2021-03-25
    • 2020-02-14
    • 1970-01-01
    • 2011-02-02
    • 2013-09-25
    • 2011-01-18
    相关资源
    最近更新 更多