本文说明了如何使用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中文网其他相关文章!