func wordPattern(pattern string, s string) bool {
var words []string
mapping := make(map[rune]string)
var lb int
for i:=0; i<len(s); i++ {
if i+1 == len(s) || s[i+1] == ' ' {
words = append(words, s[lb:i+1])
lb = i+2
}
}
if len(pattern) != len(words) {
return false
}
for i, c := range pattern {
word := words[i]
var e bool = false
for key, value := range mapping {
if key == c {
e = true
}
if key == c && word != value {
return false
}
if value == word && key != c {
return false
}
}
if !e {
mapping[c] = word
}
}
return true
}