<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                求解兩個字符串的最大公共子串可以使用動態規劃算法。 下面是用 JavaScript 實現的代碼: ```javascript function longestCommonSubstring(str1, str2) { const m = str1.length; const n = str2.length; // 創建一個二維數組用于存儲子問題的解 const dp = Array(m + 1).fill(0).map(() => Array(n + 1).fill(0)); let maxLength = 0; // 最長公共子串的長度 let endIndex = 0; // 最長公共子串在 str1 中的結束索引 for (let i = 1; i <= m; i++) { for (let j = 1; j <= n; j++) { if (str1[i - 1] === str2[j - 1]) { dp[i][j] = dp[i - 1][j - 1] + 1; // 當前字符相等,則公共子串長度加一 if (dp[i][j] > maxLength) { maxLength = dp[i][j]; endIndex = i - 1; // 更新最長公共子串的結束索引 } } else { dp[i][j] = 0; // 當前字符不相等,則公共子串長度為零 } } } // 根據最長公共子串的結束索引和長度,提取出最長公共子串 const longestSubstr = str1.substr(endIndex - maxLength + 1, maxLength); return longestSubstr; } ``` 在代碼中,我們使用一個二維數組 `dp` 來存儲子問題的解,其中 `dp[i][j]` 表示以字符串 `str1` 的第 `i` 個字符和字符串 `str2` 的第 `j` 個字符為結尾的最長公共子串的長度。 通過兩層循環遍歷 `str1` 和 `str2` 的所有字符,如果當前字符相等,則更新 `dp[i][j] = dp[i-1][j-1] + 1`;否則,置 `dp[i][j] = 0`。 在計算過程中,我們同時記錄最長公共子串的長度 `maxLength` 和結束索引 `endIndex`,以便后續提取出最長公共子串。 最后,根據 `endIndex` 和 `maxLength` 提取出最長公共子串,并返回它。 注意,該算法的時間復雜度為 $O(m \times n)$,其中 $m$ 和 $n$ 分別是兩個字符串的長度。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看