您的位置:首页 > Web前端 > JavaScript

[LeetCode][JavaScript]Word Pattern

2015-10-10 22:28 489 查看

Word Pattern

Given a
pattern
and a string
str
, find if
str
follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in
pattern
and a substring in
str
.

Examples:

pattern =
"abba"
, str =
"dog cat cat dog"
should return true.

pattern =
"abba"
, str =
"dog cat cat fish"
should return false.

pattern =
"aaaa"
, str =
"dog cat cat dog"
should return false.

pattern =
"abba"
, str =
"dog dog dog dog"
should return false.

Notes:
You may assume
pattern
contains only lowercase letters, and
str
contains lowercase letters separated by a single space.

输入的str要匹配pattern的模式。

需要开两个哈希表,一个是pattern和str的映射,还有一个记录pattern有没有用过。

/**
* @param {string} pattern
* @param {string} str
* @return {boolean}
*/
var wordPattern = function(pattern, str) {
var dict = {}, used = {};
var strArr = str.split(' ');
if(pattern.length !== strArr.length){
return false;
}
for(var i = 0; i < strArr.length; i++){
if(!dict[strArr[i]]){
if(used[pattern[i]]){
return false;
}else{
used[pattern[i]] = true;
}
dict[strArr[i]] = pattern[i];
}else{
if(dict[strArr[i]] !== pattern[i]){
return false;
}
}
}
return true;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: