我正在解决一个问题:给定一个由小英文字母组成的字符串s,查找并返回其中非重复字符的第一个实例。如果没有这样的字符,则返回“\u1”
例如:s=“abacabad”,输出应为firstNotRepeatingCharacter='c'
我写了一个简单的代码,它通过了所有的测试,但是当我提交它时,它报告了错误,有人知道我的代码出了什么问题吗?谢谢大家!
def firstNotRepeatingCharacter(s):
for i in list(s):
if list(s).count(i) == 1:
return i
return '_'
这可能是一个性能问题,因为重复的
count
(和不必要的列表转换)调用使这种方法成为二次方法。您应该以线性解决方案为目标:您还可以将
next
与生成器和默认值一起使用:如果您只能使用内置计数器,只需制作自己的计数器(或任何其他允许您识别重复项的数据结构)
相关问题 更多 >
编程相关推荐