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
Top comments (0)