思路:双哈希表法,创建两个Map类型分别存储规律->字符串,字符串->规律,每次遍历都验证两个表是否已经存在对应值,如果不存在则添加
var wordPattern = function(pattern, s) {
let map1=new Map()
let map2=new Map()
let strArr=s.split(" ")
if(strArr.length!==pattern.length){
return false
}
for(let i=0;i<s.length;i++){
if(map1.has(pattern[i])){
if(map1.get(pattern[i])!==strArr[i]){
return false
}
}
if(map2.has(strArr[i])){
if(map2.get(strArr[i])!==pattern[i]){
return false
}
}
map1.set(pattern[i],strArr[i])
map2.set(strArr[i],pattern[i])
}
return true
};
时间复杂度O(n),空间复杂度O(1)