図1に示すように、文字列が与えられると、文字列は文字の4種類のみ知られている「(」「)」、「[」、「]」のブラケットが含まれ、必要:プログラム、ランダム入力の文字列を書き込み、それがマッチングブラケットか否かが判断されます
例:
入力: "()"
戻る:「真」
入力します。「(]」
戻る:「偽」
入力: "()[()]"
戻る:「真」
入力: " ()()()]([] [])[()[[[[]]]]] "
戻る:「真」
1 パッケージTEST1。 2 3 インポートjava.util.ArrayListの。 4 インポートjava.util.Listに。 5 6 パブリック クラスTestStack { 7 8 プライベートリスト<文字>要素= 新規のArrayList <> (); 9 10 プライベート ボイド(文字O){で 11 本.elements.add(O) 12 } 13 14 プライベート文字アウト(){ 15 int型の長さ= この.elements.size()。 16 もし(長さ> 0 ){ 17 リターン elements.remove(長さ- 1 )。 18 } 19 リターン ヌル。 20 } 21 22 公共 int型のサイズ(){ 23 リターン この.elements.size()。 24 } 25 26 パブリック ブール有効な(文字列str){ 27 この.elements.clear()。 28 であれば(STR =!ヌル && str.length()> 0 ){ 29 のchar []文字= str.toCharArray()。 30 のための(チャーC:文字){ 31 チャー left1 = '(' ; 32 もし(C == left1){ 33 この.IN(C); 34 } 35 チャー RIGHT1 = '[' 、 36 であれば(C == RIGHT1){ 37 この.IN(C); 38 } 39 チャー left2 = ''); 40 もし(C == {left2) 41 チャー outElement = 本の.out()。 42 ブールR = outElement == left1。 43 であれば(!R){ 44 リターン 偽。 45 } 46 } 47 チャー right2 = ']' 。 48 もし(C == {right2) 49 チャー outElement = 本の.out()。 50 ブール R = outElement == RIGHT1。 51 であれば(!R){ 52 リターン 偽。 53 } 54 } 55 } 56 } 57 リターン この .elements.size()== 0 。 58 } 59 }
1 パッケージTEST1。 2つの 3 パブリック クラスTestDemo { 4 パブリック 静的 ボイドメイン(文字列[]引数){ 5 文字列STR1 = "()" 。 6 文字列STR2 = "[]" 。 7 文字列STR3 = "(" ; 8 文字列STR4 = "((()" ; 9 文字列STR5 = "()()]" ; 10 文字列化11 = "([)]" ; 11 文字列STR7 =「( )[()()]([] [])[()[[[[]]]]]」。 新しいTestStack(); 14 のSystem.out.println(STR1 + ":" + testStack.valid(0009))。 15 のSystem.out.println(STR2 + ":" + testStack.valid(STR2))。 16 のSystem.out.println(STR3 + ":" + testStack.valid(STR3))。 17 のSystem.out.println(STR4 + ":" + testStack.valid(STR4))。 18 のSystem.out.println(STR5 + ":" + testStack.valid(化5))。 19 のSystem.out.println(化6 + ":" + testStack.valid(化6))。 20 のSystem.out.println(STR7 + ":" + testStack.valid(化7))。
2.与えられた二つのアレイ、0よりも大きい二つの配列の長さ(2つの配列の長さは同じでも異なっていてもよい)、及び各々が上昇要件に従ってソートされている2つのアレイは、新しいアレイを形成するためにマージ、及び並べ替えを必要としない、新しいアレイは、昇順に従って配置されています
1 パッケージTEST2。 2 3 インポートjava.util.Arrays。 4つの 5 パブリック クラスTestDemo { 6 パブリック 静的 ボイドメイン(文字列[]引数){ 7 INT [] ARR1 = {1、3、5、9、15 }。 8 INT [] ARR2 = {2、5、7、8、12、13、19 }。 9 // INT [] ARR1 = {1、2、3、4}。 10 // INT [] ARR2 = {1、2、3}。 11 // INT [] ARR1 = {-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1 、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1、-1}。 12 // INT [] ARR2 = {1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、 1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1}。 13 14 のint [] newArr = 新しい INT [arr1.length + arr2.length]。 15 のint POINT1 = 0 。 16 int型ポイント2 = 0 。 17 18 のために(int型 i = 0; iは<newArr.length; iは++ ){ 19 であれば(POINT1> = arr1.length &&ポイント2 < arr2.length){ 20 newArr [I] = ARR2 [ポイント2 ++ ]。 21 続け; 22 } 23 であれば(POINT1 <arr1.length &&ポイント2> = arr2.length){ 24 newArr [I] = ARR1 [POINT1 ++ ]。 25 続け; 26 } 27 int型の結果= Integer.compare([POINT1] ARR1、ARR2 [ポイント2])。 28 スイッチ(結果){ 29 ケース -1 : 30 newArr [I] = ARR1 [POINT1]。 31 POINT1 ++ ; 32 ブレーク; 33 ケース 0 : 34 newArr [I ++] = ARR1 [POINT1]。 35 newArr [I] = ARR2 [ポイント2]。 36 POINT1 ++ ; 37 ポイント2 ++ ; 38 ブレーク; 39 ケース 1 : 40 newArr [I] = ARR2 [ポイント2]。 41 ポイント2 ++ ; 42 ブレーク; 43 } 44 } 45 のSystem.out.println(Arrays.toString(newArr))。 46 } 47 }