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。方法 雙指標分別指向頭尾,遇到不同的分別判斷刪除左右兩邊後剩下...