#String#Hash Table Даны a pattern и строка s, найдите, s следует ли она тому же шаблону. Здесь follow означает полное совпадение, такое, что существует биекция между буквой в pattern и непустым словом в s. В частности: Пример 1: Ввод: шаблон = "abba", s = "dog cat cat dog" Вывод: true Объяснение: Биекцию можно установить следующим образом: Пример 2: Ввод: шаблон = "abba", s = "dog cat cat fish" Вывод: false Пример 3: Ввод: шаблон = "aaaa", s = "dog cat cat dog" Вывод: false Ограничения: Пример решения на go func wordPattern(pattern string, s string) bool {
ws := strings.Split(s, " ")
if len(ws) != len(pattern) {
return false
}
d1 := map[rune]string{}
d2 := map[string]rune{}
for i, a := range pattern {
b := ws[i]
if v, ok := d1[a]; ok && v != b {
return false
}
if v, ok := d2[b]; ok && v != a {
return false
}
d1[a] = b
d2[b] = a
}
return true }