DEV Community

Abhishek Chaudhary
Abhishek Chaudhary

Posted on

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)