タイトル内容
空でない文字列sを考えると、あなたは多くても1つの文字で削除することができます。あなたはそれ回文作ることができるかどうかを判断します。
例:
Input: "aba"
Output: True
Example 2:
Input: "abca"
Output: True
Explanation: You could delete the character 'c'.
Note:
The string will only contain lowercase characters a-z. The maximum length of the string is 50000.
分析プロセス
- トピック分類:
回文タイトル。 トピック分析:
この質問はイージー問題として分類されています。ブルートフォース法を用いたが、(回文されていないすべての裁判官に手紙を削除)が、志望として、どのように(N ^ 2)の代わりにOの時間を短縮する方法を考える、これに固執することができます
それを考慮することができます
= L 0; R = s.length() - 1;
s.charAt(L)は=時間s.charAt(r)は、削除または削除のR Lと判定された場合!
一方のみが異なるため、我々は削除されて、これは、あります後は回文でなければなりません。- 境界分析:
- ヌル分析
- ボーダーサイクル分析
- 分析の方法:
- データ構造解析
- ステートマシン
- 状態遷移方程式
- 最適なソリューション
テストケースの構築
コードの実装
class Solution {
public boolean validPalindrome(String s) {
int l = -1,r = s.length();
while(l<r){
if(s.charAt(++l)!=s.charAt(--r)){
return Palindrome(s,l+1,r)||Palindrome(s,l,r-1);
}
}
return true;
}
public boolean Palindrome(String s,int l, int r) {
while(l<r){
if(s.charAt(l++)!=s.charAt(r--)){
return false;
}
}
return true;
}
}