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.

results matching ""

    No results matching ""