查看单词是否为等值图的函数
Function to see if word is isogram
An isogram is a word that has no repeating letters, consecutive or
non-consecutive. Implement a function that determines whether a string
that contains only letters is an isogram. Assume the empty string is
an isogram. Ignore letter case.
我已经做到了以下几点。但目标是试图说明 'moOse' 不是等值线图。它说不用担心套管。我不确定如何区分 'o' 和 'O'。
char_list = []
for char in string:
if char.isalpha():
if char.islower():
if char in char_list:
return False
else:
char_list.append(char)
return True
我的脚本 returns 正确,因为它对 'o' 和 'O' 的看法不同。我如何让它不区分?我尝试添加 .islower()
,但它似乎不起作用。
简短直接的解决方案:
def check_isogram(text):
return len(set(text.lower())) == len(text)
在检查是否包含重复字母之前,您可以将字符串大写:
def is_isogram(string):
char_list = []
for char in string.upper():
if char in char_list:
return False
char_list.append(char)
return True
您可以使用集合而不是列表来加快速度:
def is_isogram(string):
char_list = set()
for char in string.upper():
if char in char_list:
return False
char_list.add(char)
return True
您可以使用 len()
函数使其更加简洁:
def is_isogram(string):
return len(string) == len(set(string.upper()))
An isogram is a word that has no repeating letters, consecutive or non-consecutive. Implement a function that determines whether a string that contains only letters is an isogram. Assume the empty string is an isogram. Ignore letter case.
我已经做到了以下几点。但目标是试图说明 'moOse' 不是等值线图。它说不用担心套管。我不确定如何区分 'o' 和 'O'。
char_list = []
for char in string:
if char.isalpha():
if char.islower():
if char in char_list:
return False
else:
char_list.append(char)
return True
我的脚本 returns 正确,因为它对 'o' 和 'O' 的看法不同。我如何让它不区分?我尝试添加 .islower()
,但它似乎不起作用。
简短直接的解决方案:
def check_isogram(text):
return len(set(text.lower())) == len(text)
在检查是否包含重复字母之前,您可以将字符串大写:
def is_isogram(string):
char_list = []
for char in string.upper():
if char in char_list:
return False
char_list.append(char)
return True
您可以使用集合而不是列表来加快速度:
def is_isogram(string):
char_list = set()
for char in string.upper():
if char in char_list:
return False
char_list.add(char)
return True
您可以使用 len()
函数使其更加简洁:
def is_isogram(string):
return len(string) == len(set(string.upper()))