Java Program to Determine Whether a Given String of Parentheses (Single Type) is Properly Nested2025 年 3 月 26 日 | 阅读 5 分钟 正确嵌套括号是计算机科学中的一个常见问题,特别是在数学方程、解释器和编译器中。如果保留适当的开括号和闭括号的顺序,一组括号就被认为是“正确嵌套”的。 问题陈述给定一个只包含 ( 和 ) 字符的 字符串,任务是确定该字符串是否正确嵌套,条件是:
示例
方法 1 - 基于栈我们可以应用基于栈的方法来确定一串括号是否正确嵌套。栈 数据结构 非常适合在遍历字符串时跟踪开括号,因为它遵循 后进先出 (LIFO) 原则。 算法
文件名:ParenthesesNestingChecker.java 输出 Is the string "()" properly nested? true Is the string "(())" properly nested? true Is the string "(()))" properly nested? false Is the string "())(" properly nested? false Is the string "(()(()))" properly nested? True 解释栈:用于记录遇到的开括号。每次遇到开括号时,就将其压入栈中。遇到闭括号时,则查看栈顶。当弹出栈顶的开括号时,表示匹配成功。 遍历:逐个字符检查字符串。为了保持正确的嵌套,栈的操作(压栈和弹栈)确保每个闭括号都与一个开括号匹配。 最终检查:如果遍历完字符串后栈为空,则所有括号都已正确匹配,表明字符串嵌套正确。 复杂度分析
方法 2 - 计数法另一种判断括号字符串是否正确嵌套的方法是使用计数法,它比基于栈的方法更简单、更节省空间。该方法依赖于在遍历字符串时维护开括号 ( 和闭括号 ) 的平衡计数。 方法说明此方法不使用栈,而是维护一个整数计数来跟踪开括号 ( 和闭括号 ) 之间的平衡。
示例输出 Properly Nested Not Properly Nested 结论对于检测括号字符串是否正确嵌套,基于栈的方法和计数法都很有用,并且各有优点。对于表达式求值和语法验证等任务,基于栈的方法因其通用性和健壮性而不可或缺。它非常适合处理涉及嵌套或多种括号类型的复杂场景。 另一方面,计数法更直接、更节省空间,使其成为内存消耗是问题的单种括号问题的理想选择。对于简单的括号匹配,与具有更广泛应用范围的栈方法相比,计数法更快、更容易使用。 结合使用这些方法,您可以获得处理各种与嵌套结构相关的计算挑战所需的工具。 下一主题Java 析构函数 |
EJB 和 Spring 都是能够提供中间件解决方案的技术。但它们的开发理念不同。两者都提供了类似的功能范围,但代码看起来相同。在本节中,我们将讨论 EJB 和 Spring 之间的区别。 EJB EJB 是一个缩写...
阅读 3 分钟
Java 编程语言几十年来一直是软件开发领域的主流语言,以其健壮性和多功能性而闻名。随着每个新版本的发布,Java 平台都会引入增强功能和新功能,使开发人员的生活更轻松,代码更高效。在这些新增功能中,...
阅读 4 分钟
java.text.FieldPosition 类包含 getEndIndex() 函数。要查找 FieldPosition 对象中位于最后一个字符之前的字符的索引,请使用 FieldPosition 类。语法:public int getEndIndex() 参数:此方法不接受任何参数。返回值:字符...
阅读 2 分钟
在设计表单时,电子邮件起着重要作用。电子邮件可以是我们的用户名或登录 ID。电子邮件有其自身的结构,在使用之前,我们需要对其进行验证。在 Java 中,电子邮件验证是通过使用正则表达式来执行的。电子邮件验证是...
阅读 3 分钟
排序是将列表或数组的元素按特定顺序排列的一种方法。顺序可以是升序或降序。数值顺序和字典序(字母顺序)是一种广泛使用的顺序。在本节中,我们将学习如何对数组进行排序...
阅读 6 分钟
? 在 Java 中将对象序列化以便将其保存到文件、通过网络传输或存储在数据库中的过程称为序列化。然后可以使用此字节流重新创建原始对象,并具有所有...
5 分钟阅读
Java 是一种通用、面向对象的编程语言,可在不同领域使用。要下载 Java,我们需要下载并安装 JDK(Java 开发工具包)。它提供了 Java 的运行时环境。它包含运行 Java 程序所需的库和类。...
阅读 2 分钟
是 Java 中可用的按位运算符之一。XOR(又名异或)接受两个布尔操作数,如果它们不同则返回 true。XOR 运算符的最佳用例是当两个给定的布尔条件不能同时为真时....
5 分钟阅读
? Java 有不同的版本可用。由于兼容性问题,某些应用程序通常需要不同的版本。在本节中,我们将学习如何在 Windows 中使用 CMD 检查 Java 版本。版本字符串包含版本号,后面可以选择性地跟预发布版本...
阅读 2 分钟
为了从 SortedSet 中删除所有元素,我们将使用 clear() 方法。clear() 方法不会删除集合,它只会从集合中移除所有条目。换句话说,clear() 方法仅用于清空现有的 Set……
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India