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
}