- Published on
[LeetCode 387] First Unique Character in a String
Problem
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 <= 105sconsists of only lowercase English letters.
Thoughts
- Map with character to count
- Find index of the first character with count === 1
TypeScript
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;
};