feat(problems): add implementation for first unique character in a string

This commit is contained in:
Prad Nukala
2026-08-13 21:57:10 -04:00
parent 9b9428db47
commit d46fb529c0
@@ -2,46 +2,56 @@
* 387. First Unique Character in a String * 387. First Unique Character in a String
* Difficulty: Easy * Difficulty: Easy
* https://leetcode.com/problems/first-unique-character-in-a-string/ * https://leetcode.com/problems/first-unique-character-in-a-string/
* *
* ────────────────────────────────────────────────── * ──────────────────────────────────────────────────
* *
* Given a string s, find the first non-repeating character in it and * Given a string s, find the first non-repeating character in it and
* return its index. If it does not exist, return -1. * return its index. If it does not exist, return -1.
* *
* *
* *
* Example 1: * Example 1:
* *
* Input: s = "leetcode" * Input: s = "leetcode"
* *
* Output: 0 * Output: 0
* *
* Explanation: * Explanation:
* *
* The character 'l' at index 0 is the first character that does not * The character 'l' at index 0 is the first character that does not
* occur at any other index. * occur at any other index.
* *
* Example 2: * Example 2:
* *
* Input: s = "loveleetcode" * Input: s = "loveleetcode"
* *
* Output: 2 * Output: 2
* *
* Example 3: * Example 3:
* *
* Input: s = "aabb" * Input: s = "aabb"
* *
* Output: -1 * Output: -1
* *
* *
* *
* Constraints: * Constraints:
* *
* • 1 <= s.length <= 10^5 * • 1 <= s.length <= 10^5
* *
* • s consists of only lowercase English letters. * • s consists of only lowercase English letters.
*/ */
func firstUniqChar(s string) int { func firstUniqChar(s string) int {
freq := map[rune]int{}
for _, c := range s {
freq[c]++
}
for i, c := range s {
if freq[c] == 1 {
return i
}
}
return -1
} }