Доступа к i-й руне за O(1) не существует — руны упакованы и имеют переменную ширину. Реализуйте runeAt: верните i-ю руну (декодируя строку с начала, без []rune(s)) и true, либо нулевую руну и false, если индекс за границами.
- Задача
- Решение
- Обсуждение
RuneAt: i-я руна без []rune
GolangРешение
func runeAt(s string, i int) (rune, bool) {
n := 0
for _, r := range s {
if n == i {
return r, true
}
n++
}
return 0, false
}