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 }