Published May 24, 2022
[
 
]
Given a string s
, find the first non-repeating character in it and return its index. If it does not exist, return -1
.
Input: s = "leetcode"
Output: 0
Input: s = "loveleetcode"
Output: 2
Input: s = "aabb"
Output: -1
1 <= s.length <= 105
s
consists of only lowercase English letters.function firstUniqChar(s: string): number {
const charToCount: Map<string, number> = new Map<string, number>();
s.split('').reduce((acc, c) => {
if(acc.has(c)){
acc.set(c, acc.get(c) + 1);
} else {
acc.set(c, 1);
}
return acc;
}, charToCount)
for(let i = 0; i < s.length; i++){
if(charToCount.get(s[i]) === 1)
return i;
}
return -1;
};