本文说明了如何使用Java查找最长平衡括号前缀的长度。首先,我们将使用几个示例理解问题,然后学习两种不同的方法来寻找问题。
问题解释在这里,我们给出一个包含括号的字符串,我们需要从字符串中找到平衡的括号集的长度。换句话说,如果有所有开口括号
“(”(“”),那么我们将其称为平衡。 从字符串的开头,前缀定义平衡集。例如,对于括号集'(())()',仅'(())'。 >输入和输出方案
为了更好地理解,让我们看一些输入和输出方案。
如果输入字符串为
“(()”,平衡括号前缀为
()- ,则长度为2。
- 如果输入字符串为”(((())))(((“),平衡括号前缀为((()(()(()(()))))>所以长度为8。 >
- 如果输入字符串为“(()()())()()”,平衡的括号前缀为(()()()()),则长度是6。
- 最长平衡括号前缀的长度可以找到如下: 使用堆栈数据结构 计数打开和关闭括号
使用堆栈数据结构
- >可以使用堆栈。如果从堆栈中找到开口括号' (
- ',请将其推到堆栈上。如果找到闭合括号,请弹出堆栈,并将计数器变量增加2(平衡均值的长度您得到的是2。)继续执行此操作,并在变为空堆栈时返回计数器变量 >算法
算法如下:
如果字符为
(>,将其推到堆栈上。>
如果
字符为)
,则会弹出堆栈。<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>
- >将计数器增加2。
- 检查堆栈是否为空。 如果是空的,则结束循环。
- > 步骤3:
-
>示例
<code><p><b>ステップ1:</b>スタックとカウンタを初期化します。</p> <p><b>ステップ2:</b>文字列の各文字を反復処理します。</p></code>
输出
输入字符串是:((())((() 最长平衡括号前缀的长度为:6>
计数打开和关闭括号此方法使用两个变量:计数和长度。如果字符为“
”(>”,则从字符串中获得1;如果字符计数为1;如果字符为“)”,则减少数量为1,而增量长度则增加2。检查计数是否为0,如果是0,则退出循环并返回长度。 >示例
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); } }
输出输入字符串为((()()())((()))) 最长平衡的括号前缀长度为8
以上是使用Java的最长平衡括号前缀的长度的详细内容。更多信息请关注PHP中文网其他相关文章!
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
节省R.E.P.O.解释(并保存文件)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影 - 如何找到铁匠,解锁武器和装甲定制
4 周前ByDDD

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用