680【LeetCode】。有効な回文II

難易度:簡単

 多く:[ディレクトリ] LeetCodeのJava実現

説明

https://leetcode.com/problems/valid-palindrome-ii/

整数の配列、彼らは特定まで追加するように、2つの数のリターン指数を考えます 

非空の文字列を考えると  s、あなたは最大1つの文字を削除することができます。あなたはそれ回文作ることができるかどうかを判断します。

例1:

入力:「ABA」
出力:真

 

例2:

入力:「ABCA」
出力:真の
説明:文字「C」を削除できます。

直感

二つのポインタの1.Make使用。

 

解決

    パブリックブールvalidPalindrome(文字列s)は{ 
        のために(int型I = 0、J = s.length() - 1; iのJ <;私は、J ++を- ){ 
            場合(s.charAt(I)= s.charAt(! J))
                isPalindrome(S、I、J-1)を返し|| isPalindrome(S、I + 1、J)。
        } 
        trueを返します。
    } 
    
    プライベートブールisPalindrome(Stringを、私はint型、int型J){ 
        (I <jの)中{ 
            (s.charAt(私は++)= s.charAt(j--)!)場合は
                falseを返します。
        } 
        trueを返します。
    }

  

複雑

時間複雑:  O(n)は、

宇宙複雑:  O(1)

 

私は何を学びました

1.それは、学ぶと方法を利用することが重要ですisPalindromeを() 

 多く:[ディレクトリ] LeetCodeのJava実現

 

おすすめ

転載: www.cnblogs.com/yongh/p/11610216.html