290 單詞規律(JS) LeetCode

2021-09-27 02:52:48 字數 1353 閱讀 8096

題目描述:

給定一種規律 pattern 和乙個字串 str ,判斷 str 是否遵循相同的規律。

這裡的 遵循 指完全匹配,例如, pattern 裡的每個字母和字串 str 中的每個非空單詞之間存在著雙向連線的對應規律。

示例1:

輸入: pattern = 「abba」, str = 「dog cat cat dog」

輸出: true

示例 2:

輸入:pattern = 「abba」, str = 「dog cat cat fish」

輸出: false

示例 3:

輸入: pattern = 「aaaa」, str = 「dog cat cat dog」

輸出: false

示例 4:

輸入: 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 輸出...