Problem Link

Description


Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1.

 

Example 1:

Input: s = "leetcode"

Output: 0

Explanation:

The character 'l' at index 0 is the first character that does not occur at any other index.

Example 2:

Input: s = "loveleetcode"

Output: 2

Example 3:

Input: s = "aabb"

Output: -1

 

Constraints:

  • 1 <= s.length <= 105
  • s consists of only lowercase English letters.

Solution


Python3

class Solution:
    def firstUniqChar(self, s: str) -> int:
        A = [0] * 26
 
        for x in s:
            A[ord(x) - ord('a')] += 1
        
        for i, x in enumerate(s):
            if A[ord(x) - ord('a')] == 1:
                return i
        
        return -1