--- title: '387. First Unique Character in a String' description: Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1 sidebar: label: 'First Unique Character in a String' badge: 'Easy' --- Hash Table ### Example 1: - Input: `s = "leetcode"` - Output: `0` - Explanation: The character `'l'` at index `0` is the first character that does not occur at any other index. ### Example 2: - Input: `s = "loveleetcode"` - Output: `2` ### Example 3: - Input: `s = "aabb"` - Output: `-1` ### Constraints: - `1 <= s.length <= 10^5` - `s` consists of only lowercase English letters. ## Solution ```js /** * @param {string} s * @return {number} */ var firstUniqChar = function (s) { const freq = {}; for (let c of s) freq[c] = (freq[c] || 0) + 1; for (let i = 0; i < s.length; i++) { if (freq[s[i]] === 1) { return i; } } return -1; }; ```