diff --git a/Easy/Hash Table/387.first-unique-character-in-a-string.js b/Easy/Hash Table/387.first-unique-character-in-a-string.js new file mode 100644 index 0000000..d849c6d --- /dev/null +++ b/Easy/Hash Table/387.first-unique-character-in-a-string.js @@ -0,0 +1,59 @@ +/* + * 387. First Unique Character in a String + * Difficulty: Easy + * https://leetcode.com/problems/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 + * + * 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. + */ + +/** + * @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; +};