打印Python中字符串的第一个非重复字符

2024-09-27 00:22:43 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码是用计数器一打印出所有的字符[d,e],但我只需要第一个字符就可以打印出来,我该怎么做?在

def firstNonRepeat(s):
  counter = {}

  for char in s:
    if char in counter:
      counter[char] += 1
    else:
      counter[char] =  1

  for char in s:
    if counter[char] == 1:
      print char
  return None

firstNonRepeat('aabccbdcbe')

Tags: 代码innoneforreturnifdefcounter
3条回答

使用这样的选项:

def firstNonRepeat(s):
    counter = {}
    for char in s:
        if char in counter:
            counter[char] += 1
        else:
            counter[char] =  1
    for item in counter:
        if counter[item] == 1:
            return item
print(firstNonRepeat('aabccbdcbe'))

想法是通过返回匹配返回for循环和stop循环中的第一个匹配。另外,如果for循环找不到任何东西,它将返回None,不需要编写最后一个返回。在

尝试以下操作:从字符串中删除一个实例(字符),然后查看其余部分中是否存在该字符:

def firstNonRepeat(s):

  for i, char in enumerate(s):
    # print i, char, s[i+1:]
    if char not in s[:i]+s[i+1:]:
      print char
      return

firstNonRepeat('aabccbdcbe')

找到要查找的字符时,请使用break停止for循环。在

for char in s:
    if counter[char] == 1:
      print char
      break

相关问题 更多 >

    热门问题