680.検証回文列2(Python)
1133 ワード
タイトル
難易度:★☆☆☆タイプ:配列
空でない文字列sを指定し、最大1文字を削除します.返信文字列にできるかどうかを判断します.
注意文字列には、a-zからの小文字のみが含まれます.文字列の最大長は50000です.
例
例1入力:aba出力:True
例2入力:「abca」出力:True解釈:c文字を削除できます.
に答える
いくつかの法則を考慮する必要があります. 1文字列が要素を削除した後も、文字列の長さが奇数または偶数であっても、文字列は依然として文字列である. は2つのポインタを定義して、私達は2つの頭から中間に遍歴することができて、左右の2つの異なる文字に出会う時、私達はどれを削除すべきかを判断することができなくて、それぞれ削除することを考慮することができて、どの文字を削除することを見てから、残りの文字は回文列を構成することができて、もしどれを削除しても、回文列を構成することができなければ
符号化するときは、下付きの問題に注意する必要があります.
質問やアドバイスがあれば、コメントエリアへようこそ~
難易度:★☆☆☆タイプ:配列
空でない文字列sを指定し、最大1文字を削除します.返信文字列にできるかどうかを判断します.
注意文字列には、a-zからの小文字のみが含まれます.文字列の最大長は50000です.
例
例1入力:aba出力:True
例2入力:「abca」出力:True解釈:c文字を削除できます.
に答える
いくつかの法則を考慮する必要があります.
符号化するときは、下付きの問題に注意する必要があります.
class Solution:
def validPalindrome(self, s: str) -> bool:
left, right = 0, len(s) - 1
is_palindrome = lambda s: s == s[::-1] # s
while left <= right: #
if s[left] == s[right]: #
left, right = left + 1, right - 1 #
else:
# ,
return is_palindrome(s[left+1: right+1]) or is_palindrome(s[left: right])
return True
質問やアドバイスがあれば、コメントエリアへようこそ~