【LeetCode】290. Word Pattern

GitHub:https://github.com/BadWaka/leet-code-waka

思路

205. Isomorphic Strings 的思路相同

新建四個(gè)數(shù)組
mapA,mapB用來放置字符串中的元素,
arrA,arrB用來記錄字符串在map中對(duì)應(yīng)的位置

兩次循環(huán)分別遍歷兩個(gè)字符串,并進(jìn)行放置元素到map數(shù)組的操作和在arr中記錄位置,完事后判斷arrA和arrB是不是相等,如果相等,則返回true

測(cè)試示例



代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>290. Word Pattern</title>
</head>
<body>
<p>
    Given a pattern and a string str, find if str follows the same pattern.
    <br/>
    Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in
    str.
    <br/>
    Examples:
    <br/>
    pattern = "abba", str = "dog cat cat dog" should return true.
    <br/>
    pattern = "abba", str = "dog cat cat fish" should return false.
    <br/>
    pattern = "aaaa", str = "dog cat cat dog" should return false.
    <br/>
    pattern = "abba", str = "dog dog dog dog" should return false.
    <br/>
    Notes:
    <br/>
    You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single
    space.
</p>
<script>
    /**
     * @param {string} pattern
     * @param {string} str
     * @return {boolean}
     */
    var wordPattern = function (pattern, str) {
        var mapA = [], mapB = [];
        var arrA = [], arrB = [];
        var i;
        for (i = 0; i < pattern.length; i++) {
            if (mapA.indexOf(pattern[i]) === -1) {
                mapA.push(pattern[i]);
            }
            arrA.push(mapA.indexOf(pattern[i]));
        }
        var strArr = str.split(' ');
        for (i = 0; i < strArr.length; i++) {
            if (mapB.indexOf(strArr[i]) === -1) {
                mapB.push(strArr[i]);
            }
            arrB.push(mapB.indexOf(strArr[i]));
        }
        console.log('mapA = ' + JSON.stringify(mapA));
        console.log('arrA = ' + JSON.stringify(arrA));
        console.log('mapB = ' + JSON.stringify(mapB));
        console.log('arrB = ' + JSON.stringify(arrB));

        /**
         * 判斷數(shù)組是否相等(簡(jiǎn)單數(shù)組)
         * @param arrA
         * @param arrB
         */
        function isArrayEqual(arrA, arrB) {
            return JSON.stringify(arrA) === JSON.stringify(arrB);
        }

        // 判斷arrA和arrB是否相等
        return isArrayEqual(arrA, arrB);
    };

    var pattern = "abba", str = "dog cat cat dog";
    console.log(wordPattern(pattern, str));

</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • leetcode刷題記錄本文記錄一下leetcode刷題記錄,記錄一下自己的解法和心得。 LeetCode Two...
    EarthChen閱讀 3,603評(píng)論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評(píng)論 19 139
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,921評(píng)論 0 33
  • 字符的 Unicode 表示法 codePointAt() String.fromCodePoint() 字符串的...
    卞卞村長L閱讀 840評(píng)論 0 0
  • 第二章 遠(yuǎn)方,閃著微光 十年一次的校慶到了,全校張燈結(jié)彩。 洛海還是穿著一件白襯衫,光圈打在他身上,臺(tái)下是黑...
    七號(hào)LIFE閱讀 390評(píng)論 0 1

友情鏈接更多精彩內(nèi)容