HTMLify
LeetCode - Word Pattern - Go
Views: 341 | Author: abh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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 } |