我阅读了一个工作面试问题,为以下内容编写了一些代码:
编写一个高效的函数来查找字符串中第一个不重复的字符。例如,“total”中第一个不重复的字符是“o”,“teeter”中第一个不重复的字符是“r”。讨论算法的效率。
我在 Python 中提出了这个解决方案;但是,我相信还有更漂亮的方法可以做到这一点。
word="googlethis"
dici={}
#build up dici with counts of characters
for a in word:
try:
if dici[a]:
dici[a]+=1
except:
dici[a]=1
# build up dict singles for characters that just count 1
singles={}
for i in dici:
if dici[i]==1:
singles[i]=word.index(i)
#get the minimum value
mini=min(singles.values())
#find out the character again iterating...
for zu,ui in singles.items():
if ui==mini:
print zu
有没有更简洁有效的答案?