Principal
/** * Tekrarlayan karakterler * * Giriş olarak bir dize alan ve her benzersiz karakter için maksimum ardışık tekrar sayısını döndüren bir fonksiyon yazmanız gerekiyor. * * Girdi: qqffbbaaaffc * Çıktı: a:4 b:1 f:2 c:1 * * Girdi: bbbbbb * Çıktı: b:6 * * Girdi: abc * Çıktı: a:1 b:1 c:1 * * Girdi: aabbcc * Çıktı: a:2 b:2 c:2 * * Girdi: aaabbbccc * Çıktı: a:3 b:3 c:3 * * Girdi: a * Çıktı: a:1 * * Girdi: "" * Çıktı: */
sobes.tech yapay zeka
AI'dan gelen yanıt
go package main
import ( "fmt" )
func maxRepeats(s string) map[rune]int { result := make(map[rune]int) if len(s) == 0 { return result }
var prev rune
count := 0
for i, ch := range s {
if i == 0 {
prev = ch
count = 1
continue
}
if ch == prev {
count++
} else {
if count > result[prev] {
result[prev] = count
}
prev = ch
count = 1
}
}
// Проверяем последний символ
if count > result[prev] {
result[prev] = count
}
return result
}
func main() { tests := []string{ "qqffbbaaaffc", "bbbbbb", "abc", "aabbcc", "aaabbbccc", "a", "", }
for _, test := range tests {
res := maxRepeats(test)
fmt.Printf("Input: %s\nOutput: ", test)
for ch, cnt := range res {
fmt.Printf("%c:%d ", ch, cnt)
}
fmt.Println("\n")
}
}