【发布时间】:2023-03-15 03:27:01
【问题描述】:
我的代码打算识别第一个非重复字符串字符、空字符串、重复字符串(即abba 或aa),但它也意味着在返回时将小写和大写输入视为相同的字符在它的原始大小写输入中准确的非重复字符。
def first_non_repeat(string):
order = []
counts = {}
for x in string:
if x in counts and x.islower() == True:
counts[x] += 1
else:
counts[x] = 1
order.append(x)
for x in order:
if counts[x] == 1:
return x
return ''
我在第 5 行的逻辑是,如果我将所有字母输入设为小写,那么它将遍历字符串输入并且不区分大小写。但到目前为止,当我真的需要'T' 时,输入'sTreSS' 并输出's'。如果最后两个S 是小写的,那么它将是'T',但我需要足够灵活的代码来处理任何大小写输入。
【问题讨论】:
-
重点是
if x in counts只会以区分大小写的方式查找x。 -
对,我希望该语句在查找 x 时忽略大小写
-
有什么消息吗?我在下面发布了一个基于正则表达式的替代解决方案。