問題:
パッケージcom.example.demo; インポートjava.util.HashMapを、 インポートjava.util.Map; インポートjava.util.Stackを、 パブリック クラスTest20 { / ** *有効ブラケット *利用するスタックデータ構造に遭遇{[(ETスタックに括弧を残し、それが取り除か右括弧要素のスタックが発生します、比較 *件名決定継続する * / パブリック ブールのisValid(文字列S){ 地図と、Map <String、String> = 新しい新しい HashMapを< > (); map.put( "("、 ")" ); map.put( "{"、 "}" ); map.put( "["、 "]" )。 スタック <文字列>スタック=新しい新しいスタック<> (); のための(INT I = 0;私は<s.length();私は++ ){ 文字列のサブ = s.substring(I、I + 1。); IF( "({[" 。含有(サブ)){ stack.push(SUB); } 他{ // スタックに要素がない場合は固定値に変更し、ブラケットの1つに属していない固定値場合falseに比較戻り 文字列POP ?= stack.isEmpty() "#" :; stack.pop() IF(!{sub.equals(map.get(POP))) を返す 偽; } } } //をマッチング要素がまだされたときに完了したときにスタックに応じて決定される 戻り、stack.isEmptyを() } パブリック 静的 ボイド{メイン(文字列[]引数)を Test20 T = 新しい新; Test20() ブール」(有効= t.isValid ()()(]){} [] " ); のSystem.out.println)(有効; } }