次の学習データ構造

一致する括弧の問題:

T20:効果的なかっこ

クラスのソリューション{
    パブリックブールのisValid(文字列S){
        両端キュー<文字> DQ =新しいLinkedListは<>();
        チャーchSet [] = s.toCharArray()。
        以下のための(文字CH1:chSet)
        {
            もし(dq.isEmpty())
            {
                dq.push(CH1)。
            }
            そうしないと
            {
                チャーCH 2 = dq.pop()。
                (もし!マッチ(CH1、CH2))
                {
                    dq.push(CH 2);
                    dq.push(CH1)。
                }
            }

        }
        もし(dq.isEmpty())
            trueを返します。
        そうしないと
            falseを返します。

    }
    パブリックブールマッチ(文字CH1、char型のCH2)
    {
        IF(CH1 == '[' && CH2 == ']')
        {
            trueを返します。
        }
        IF(CH1 == '{' && CH2 == '}')
        {
            trueを返します。
        }
        もし(CH1 == '(' && CH2 == ''))
        {
            trueを返します。
        }
        IF(CH1 == '}' && CH2 == '{')
        {
            trueを返します。
        }
        もし(CH1 == '')&& CH2 == '(')
        {
            trueを返します。
        }
        IF(CH1 == ']' && CH2 == '[')
        {
            trueを返します。
        }
        falseを返します。
    }
}
 
(1)両端キューはのisEmpty動作、ポップ、プッシュ・スタックとして使用することができます
(2)両端キュー溶液、また、LinkedListのをLinkedListのキューが実際にインスタンス化に使用することができます。 
(3)学習がアレイが実装スタックに、学習することであり、アレイが可能であるLinkedListの方法の他の例
(4)は、Javaとを有する又はれる:&&と||
(5)ストリング転送はcharArrayが.toCharArrayによって変換を達成することができます。char配列文字列はもちろん、他の機能によって分割することにより変換されます。
 
文字の内部にアクセスするための文字列は、あなたもこの方法を使用することができます。

用(INT iは= 0; I <s.length(); I ++){
チャーC = s.charAt(I)。

この方法は、どこのcharの位置にあなたを伝えるのcharAtを使用することです

 

対応arrayQueueと対応するキューは、また、実現すること。

それらの間で最も重要なの論理的な整合性を狭め、増加させるので.addfirst addlastこれらの事は、あなたが、最高を呼び出すためにこの機能を追加する必要があります事私はある学びました    

パブリックアレイ(){
この(10)。
}

この平均:また、パラメータとして渡されたコンストラクタ10、10を呼び出します

おすすめ

転載: www.cnblogs.com/startFrom0/p/12585587.html