题目:Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.
样例
Given s = “lintcode”, return 0.
Given s = “lovelintcode”, return 2.
思路:
- 建立一个字典去统计字符串中所有元素出现的频率,(元素为键,频率为值)
- 然后在字典中按字符串的顺序去查找到第一个频率为1的,返回的是字符串的那个下标位置。
代码:
class Solution:
# @param {string} s a string
# @return {int} it's index
def firstUniqChar(self, s):
# Write your code here
a={} #定义一个字典
for i in range(len(s)):
a[s[i]]=0 #一开始每个元素频率皆初始化为0
for i in range(len(s)):
a[s[i]]+=1
for i in range(len(s)):
if a[s[i]]==1: #满足要求的出现的第一个不重复元素
return i
return -1 #不满足的情况皆返回-1