題目描述:
給定一種規律 pattern 和乙個字串 str ,判斷 str 是否遵循相同的規律。
這裡的 遵循 指完全匹配,例如, pattern 裡的每個字母和字串 str 中的每個非空單詞之間存在著雙向連線的對應規律。
示例1:
輸入: pattern = 「abba」, str = 「dog cat cat dog」示例 2:輸出: true
輸入:pattern = 「abba」, str = 「dog cat cat fish」示例 3:輸出: false
輸入: pattern = 「aaaa」, str = 「dog cat cat dog」示例 4:輸出: false
輸入: pattern = 「abba」, str = 「dog dog dog dog」說明:輸出: false
你可以假設 pattern 只包含小寫字母, str 包含了由單個空格分隔的小寫字母。
思路:先把第二個字串以空格分割成陣列;
建兩個字典map,乙個用來儲存第乙個字串裡每個字元出現的下標,另乙個存放第二個字串陣列每個陣列元素出現的下標。其中鍵是每個字元,值是索引拼成的字串。
遍歷第乙個字串和第二個字串分割成的陣列;完成2.
依次比較兩個字典的value,如果都相等,說明遵循相同的規律。
**實現:
/**
* @param pattern
* @param str
* @return
*/ var wordpattern = function (pattern, str) else
if (strmap.has(strarr[i])) else
}if (strmap.size !== patternmap.size) return false; //如果兩字典長度不相等,那麼一定不同構,直接返回
let arr1 = [...patternmap];
let arr2 = [...strmap];
for (let i = 0; i < arr1.length; i++)
return true; // 都相等返回true;
};
執行結果:
290 單詞規律
給定一種規律 pattern 和乙個字串 str 判斷 str 是否遵循相同的規律。這裡的 遵循 指完全匹配,例如,pattern 裡的每個字母和字串 str 中的每個非空單詞之間存在著雙向連線的對應規律。示例1 輸入 pattern abba str dog cat cat dog 輸出 true...
290 單詞規律
290.單詞規律 給定一種規律pattern和乙個字串str,判斷str是否遵循相同的規律。這裡的遵循指完全匹配,例如,pattern裡的每個字母和字串str中的每個非空單詞之間存在著雙向連線的對應規律。示例1 輸入 pattern abba str dog cat cat dog 輸出 true示...
290 單詞規律
題目描述 給定一種規律 pattern 和乙個字串 str 判斷 str 是否遵循相同的規律。這裡的 遵循 指完全匹配,例如,pattern 裡的每個字母和字串 str 中的每個非空單詞之間存在著雙向連線的對應規律。示例1 輸入 pattern abba str dog cat cat dog 輸出...