class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
alphabet = 'abcdefghijklmnopqrstuvwxyz'
index = [s.index(l) for l in alphabet if s.count(l) == 1]
return min(index) if index else -1
Sol = Solution()
print Sol.firstUniqChar("loveleetcode")
0,参考的代码
1,题目要求:
即找出第一个在字符串中没有重复出现的字母的位置,如果不存在就返回-1.
2,一开始想用直接字符串的切割判断法来进行,但是这样会造成TLE。
其实题目就是要求找出在字符串中第一个只出现一次的字母的index。但是原答案主使用的并不是依次进行判断,也就是下面这种方法:
index = []
for i in range(len(s)):
if s.count(s[i]) == 1:
index.append(s.index(s[i]))
return min(index) if index else -1
这样在字符串s过长时,会造成超时。
题主这种方法则是建立一个字母表,只需要对26个字母表进行遍历并利用count函数对s中的各个字母出现次数为1的字母的index进行记录即可,极大的缩短了时间的消耗。