问题描述
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode"
return 0.
s = "loveleetcode",
return 2.
Note: You may assume the string contain only lowercase letters.
补充说明:
这个题目的要求简单明了, 给定一个名为s的字符串,然后找到第一个不重复的字母,然后返回该字母的下标。
如果不存在符合条件的字母,则返回-1。
方案分析
- 典型的字母统计问题,首先应该想到的是使用hash的方式对字母出现的次数进行标记。
- 将hash字母表中的出现次数为1的字母返回,并从字符串中查找下标。
python实现
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
dict = {}
for item in s:
if item in dict.keys():
dict[item] += 1
else:
dict[item] = 1
for i in range(len(s)):
if dict[s[i]] == 1:
return i
return -1
python实现2
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
letters='abcdefghijklmnopqrstuvwxyz'
index=[s.index(l) for l in letters if s.count(l) == 1]
return min(index) if len(index) > 0 else -1
网友评论