相关疑难解决方法(0)

在字符串中查找第一个不重复的字符

我读了一份求职面试问题,为下面写了一些代码:

编写一个有效的函数来查找字符串中的第一个非重复字符.例如,"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 
Run Code Online (Sandbox Code Playgroud)

有更简洁有效的答案吗?

python algorithm

2
推荐指数
1
解决办法
6200
查看次数

标签 统计

algorithm ×1

python ×1