LeetCode 680 驗證回文字串

2021-10-09 19:43:22 字數 844 閱讀 5074

680. 驗證回文字串 ⅱ

給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。

示例 1:

輸入: "aba"

輸出: true

示例 2:

輸入: "abca"

輸出: true

解釋: 你可以刪除c字元。

注意:字串只包含從 a-z 的小寫字母。字串的最大長度是50000。

雙指標法:

思路:

1.先判斷原串是否符合回文要求(雙指標left,right,分別向原串中心移動)

2.如果原串不符合回文,那試圖刪除左或右的乙個字元後看最終能否構成回文,兩種情況:

(1) 刪掉左邊字元               (2) 刪掉右邊字元

時間複雜度:

o(n),其中 n 是字串的長度。判斷整個字串是否是回文字串的時間複雜度是 o(n)。遇到不同字元時,判斷兩個子串是否是回文字串的時間複雜度也都是 o(n)

空間複雜度:o(1)

leetcode 680 驗證回文字串

給定乙個非空字串s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true示例 2 輸入 abca 輸出 true解釋 你可以刪除c字元。雙指標法 維護左指標i,右指標j。兩邊向中間夾,當遇到不相等字串 判讀i 1 到j 或是 i 到 j 1是否回文 pythonclass...

LeetCode 680 驗證回文字串

給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。這道題依舊是雙指標型別題目,即前後雙指標依次判斷,但此題關鍵在於刪除哪乙個字元的問題,如果掃瞄中第一次碰到不相等...

leetcode 680 驗證回文字串

給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。方法 雙指標分別指向頭尾,遇到不同的分別判斷刪除左右兩邊後剩下...