编程题目:对于一个字符串,,请设计一个高效算法,找到第一次重复出现的字符。
这里可是使用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))