1234567891011121314151617 |
- func firstUniqChar(s string) int {
- m := make(map[rune]int)
- cnt := make([]int, 256)
- for i, r := range s {
- if _, ok := m[r]; !ok {
- m[r] = i
- }
- cnt[r]++
- }
- idx := -1
- for i := 'a'; i <= 'z'; i++ {
- if val := m[i]; cnt[i] == 1 && (idx == -1 || val < idx) {
- idx = val
- }
- }
- return idx
- }
|