本文說明瞭如何使用Java查找最長平衡括號前綴的長度。首先,我們將使用幾個示例理解問題,然後學習兩種不同的方法來尋找問題。
問題解釋”),那麼我們將其稱為平衡。 從字符串的開頭,前綴定義平衡集。例如,對於括號集'(())()',僅'(())'。 >輸入和輸出方案
為了更好地理解,讓我們看一些輸入和輸出方案。
,平衡括號前綴為
()使用堆棧數據結構
如果字符為
()
,則會彈出堆棧。<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>
<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>
輸出
輸入字符串是:((())((() 最長平衡括號前綴的長度為:6>
計數打開和關閉括號
>”,則從字符串中獲得1;如果字符計數為1;如果字符為“)”,則減少數量為1,而增量長度則增加2。檢查計數是否為0,如果是0,則退出循環並返回長度。 >示例
<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>輸出
輸入字符串為((()()())((()))) 最長平衡的括號前綴長度為8
以上是使用Java的最長平衡括號前綴的長度的詳細內容。更多資訊請關注PHP中文網其他相關文章!