First Unique Character in a String

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

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:
import heapq

class Solution:
    def firstUniqChar(self, s: str) -> int:
        n = len(s)
        freq = [[0, n] for i in range(26)]
        beg = ord('a')
        for i in range(n):
            freq[ord(s[i]) - beg][0] += 1
            freq[ord(s[i]) - beg][1] = min(i, freq[ord(s[i]) - beg][1])
        uniques = [el for el in freq if el[0] == 1]
        k = len(uniques)
        if k > 0:
            unique = min(uniques, key = lambda el: el[1])
            return unique[1]
        return -1

Comments

Popular posts from this blog

Encrypt and Decrypt Strings

Degree of an Array

Minimum Sum of Four Digit Number After Splitting Digits