第一个只出现一次的字符
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
思路
- 解法一
str.count()。遍历str中每个字符,判断str.count(i)是否为1,如果为1直接返回index。遍历结束后,如果为1的if判断语句没有为真过,说明str中都是重复字符,返回-1. - 解法二
词典法。遍历一遍str,构建词典,key为字符,value为出现的次数。再遍历一遍str,判断value值,如果为1返回index。 - 算法比较
待补充
代码
- 解法1
def FirstNotRepeatingChar1(self, s):
"""count函数法"""
for i in range(len(s)):
if s.count(s[i]) == 1:
return i
else:
return -1
- 解法2
def FirstNotRepeatingChar2(self, s):
"""dict"""
elemDict = {}
for i in range(len(s)):
elemDict[s[i]] = elemDict.get(s[i],0)+1
for i in range(len(s)):
if elemDict[s[i]] == 1:
return i
else:
return -1