首页 > 解决方案 > 如何判断一个字符串是否有重复字符?

问题描述

我已经编写了这段代码......并且我期望的答案在这段代码中不正确,如果一个字符串有重复的字符,它应该返回 False 但它在所有情况下都返回 True

我已经做了很多编码来尝试解决这个问题这是在 JUPYTER 笔记本中

def is_isogram(string):
   for i in string:
       if string.count(i) == 1:
           print('True')
       elif string.count(i) > 1:
           print('False')

我输入了“你好”,它应该返回 False,但在所有情况下都返回 true

标签: pythonpython-3.x

解决方案


只要找到大于一的计数,您就可以确定您的单词不是等值线,但只有在检查了所有字母后才能确定它是一个:

def is_isogram(string):
    for i in string:
        if string.count(i) > 1:
            return False
    return True

print(is_isogram('pear'))
#  True

print(is_isogram('apple'))
# False

或者,如果您真的希望您的函数打印其输出而不是返回它,我通常不建议这样做:

def is_isogram(string):
    for i in string:
        if string.count(i) > 1:
            print('False')
            return
    print('True')

一个更短的经典解决方案是创建一个set字符,并检查唯一字符的数量是否等于字符串的长度

def is_isogram2(string):
    return len(set(string)) == len(string)

推荐阅读