387.First Unique Character in a String
Tags: [map]
Link: https://leetcode.com/problems/first-unique-character-in-a-string/?tab=Description
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.
Solution: map
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
if not s:
return -1
c_map = {}
for c in s:
if c in c_map:
c_map[c] += 1
else:
c_map[c] = 1
for i in xrange(len(s)):
c = s[i]
if c in c_map and c_map[c] == 1:
return i
return -1
Note:
- Time complexity = O(n), n is the length of the given string.