编程题目:对于一个字符串,,请设计一个高效算法,找到第一次重复出现的字符。

这里可是使用hash或者字典这种映射的方式解决问题。

当访问某字符时,如果该字符可以在字典里面找到,说明他已经在前面出现过了。

 

 1 #!/usr/bin/env python3
 2 
 3 def find_str_repeat(s):
 4         d = {}
 5         for i in range(len(s)):
 6                 if d.get(s[i]):
 7                         return s[i]
 8                 else:
 9                         d[s[i]]= i
10         return False
11 
12 def find_str_repeat1(s):
13         d = {}
14         for i in s:
15                 if d.get(i):
16                         return i
17                 else:
18                         d[i] = i
19         return False
20 
21 if __name__ == "__main__":
22         s = "qywyer23tdd"
23         print(find_str_repeat(s))
24         print(find_str_repeat1(s))

 

posted @ 2017-02-24 13:26  小黄人python  阅读(4496)  评论(0编辑  收藏  举报