mirror of
https://github.com/prdlk/leetcode.git
synced 2026-09-17 15:36:26 +00:00
58 lines
1022 B
Go
58 lines
1022 B
Go
/*
|
|
* 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.
|
|
*/
|
|
|
|
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
|
|
}
|