单词规律

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。
这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。

  • 输入: pattern = “abba”, s = “dog cat cat dog”

  • 输出: true

  • 输入:pattern = “abba”, s = “dog cat cat fish”

  • 输出: false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var wordPattern = function(pattern, str) {
const obj = {},arr = str.split(' '),n = arr.length;
if(pattern.length !== n) return false;
for(let i = 0;i<n;i++){
if(obj[pattern[i]]){
if(obj[pattern[i]] !== arr[i]){
return false
}
}else if(obj['_'+arr[i]]){
return false
}else {
obj[pattern[i]] = arr[i]
obj['_'+arr[i]] = pattern[i]
}
}
return true
};