Rumah >Java >javaTutorial >Panjang kurungan kurungan seimbang terpanjang menggunakan java
Penjelasan masalah
Di sini kita memberikan rentetan yang mengandungi kurungan dan kita perlu mencari panjang set kurungan seimbang dari rentetan. Dalam erti kata lain, jika terdapat semua kurungan pembukaanawalan menentukan set seimbang dari awal rentetan. Sebagai contoh, untuk set kurungan '(()) ()', hanya '(())' dipertimbangkan. senario input dan output
Untuk pemahaman yang lebih baik, mari kita lihat beberapa senario input dan output.
, awalan kurungan seimbang adalah
()menggunakan struktur data stack
Jika watak itu
(adalah
)<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>, muncul timbunan.
<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>
output
rentetan input ialah: ((()) ((( Panjang kurungan kurungan seimbang yang paling lama ialah: 6Count Pembukaan dan Penutup Pandangan
", kiraan pengurangan sebanyak 1 dan panjang kenaikan sebanyak 2. Semak jika kiraan adalah 0, jika ia adalah 0, keluar dari gelung dan panjang kembali. Contoh
<code class="language-java">import java.util.Stack; public class Example { public static int longestBalancedPrefix(String s) { Stack<character> stack = new Stack<>(); int count = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(') { stack.push(c); } else if (c == ')') { if (!stack.isEmpty()) { stack.pop(); count += 2; } } if (stack.isEmpty()) { break; } } return count; } public static void main(String[] args) { String s = "((())((("; int length = longestBalancedPrefix(s); System.out.println("入力文字列は:" + s); System.out.println("最長のバランスの取れた括弧のプレフィックスの長さは:" + length); } }</character></code>
rentetan input adalah ((()) ()) (())) Panjang Panjang Parentheses yang paling lama adalah 8
Atas ialah kandungan terperinci Panjang kurungan kurungan seimbang terpanjang menggunakan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!