func wordPattern(pattern string, str string) bool {
	words := strings.Split(str, " ")
	if len(words) != len(pattern) {
		return false
	}
	r2s := make(map[rune]string)
	s2r := make(map[string]rune)
	for i, p := range pattern {
		if s, ok := r2s[p]; ok {
			if s != words[i] {
				return false
			}
		}
		if r, ok := s2r[words[i]]; ok {
			if r != p {
				return false
			}
		}
		r2s[p] = words[i]
		s2r[words[i]] = p
	}
	return true
}