給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。
示例 1:
輸入: 「aba」
輸出: true
示例 2:
輸入: 「abca」
輸出: true
解釋: 你可以刪除c字元。
注意:字串只包含從 a-z 的小寫字母。字串的最大長度是50000。
這道題我們可以很容易的想到就是遍歷字串,每次刪除乙個字元,然後再判斷是不是回文字串。
但是這樣明顯複雜度不理想。
我們判斷回文字串的時候就是從兩頭往裡走判斷,使用雙指標判斷兩頭對稱的字元是否都相同。
那麼我們也是用這個思想,從兩頭往裡走判斷,如果遇到不相同的,則分別刪除其中乙個,然後再判斷剩下字串是否符號條件,符號條件則原字串就是回文字串
class
solution
return
true;}
bool
validpalindrome
(string s)
i++; j--;}
return
true
;// 如果跳出迴圈說明每次的兩頭始終相等,就是回文字串。}}
;
680 驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。分析 使用雙指標,在第乙個不相等的位置略過左邊或右邊的乙個字元...
680 驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。class solution int i 0,j len 1 ...
680 驗證回文字串
給定乙個非空字串 s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。class solution object defvalidp...