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 was a bijection between a letter in and pattern
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:
Assume contains only pattern
lowercase letters, and contains lowercase letters separated by str
a single space.
The input str is matched to pattern patterns.
Need to open two hash tables, one is the pattern and STR mapping, there is a record pattern has not been used.
1 /**2 * @param {string} pattern3 * @param {string} str4 * @return {Boolean}5 */6 varWordpattern =function(pattern, str) {7 varDict = {}, used = {};8 varStrarr = Str.split (");9 if(Pattern.length!==strarr.length) {Ten return false; One } A for(vari = 0; i < strarr.length; i++){ - if(!Dict[strarr[i]]) { - if(Used[pattern[i]]) { the return false; -}Else{ -Used[pattern[i]] =true; - } +Dict[strarr[i]] =Pattern[i]; -}Else{ + if(Dict[strarr[i]]!==Pattern[i]) { A return false; at } - } - } - return true; -};
[Leetcode] [JavaScript] Word Pattern