lc-go/solutions/2/q290/solution.go

31 lines
594 B
Go

// Package q290 implements a solution for https://leetcode.com/problems/word-pattern/
package q290
import "strings"
func wordPattern(pattern string, s string) bool {
index := map[byte]string{}
invIndex := map[string]struct{}{}
fields := strings.Fields(s)
if len(fields) != len(pattern) {
return false
}
for i, word := range fields {
if w, ok := index[pattern[i]]; ok {
if w != word {
return false
}
} else {
if _, ok := invIndex[word]; ok {
return false
}
index[pattern[i]] = word
invIndex[word] = struct{}{}
}
}
return true
}
var _ = wordPattern