From ed74d3c7b3c1eae4119637dccc2185d80e99eb40 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sat, 11 Jul 2026 23:25:19 -0400 Subject: [PATCH] init(Easy/Hash Table): add solution for 387.first-unique-character-in-a-string.js --- .../387.first-unique-character-in-a-string.js | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Easy/Hash Table/387.first-unique-character-in-a-string.js 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; +};