计算括号反转次数2024 年 8 月 29 日 | 阅读 3 分钟 在此问题中,我们将给定一个包含 "(" 和 ")" 的字符串表达式。括号的放置方式可能无法使表达式平衡。我们需要翻转括号以使表达式平衡。最后,我们需要返回为了使表达式平衡而翻转括号的次数。 示例 从上面的例子中,我们可以得出结论,只有当括号的总数为偶数时,表达式才能变成平衡表达式;同样,两种括号的数量,即 "(" 和 ")" 的数量也必须相等。 解决此问题的基本方法是查看每个括号并计算翻转括号的次数。我们可以递归地执行此操作,并跟踪使表达式平衡所需的最小翻转次数。 时间复杂度:使用此方法解决此问题的 O(2n) 时间复杂度。 空间复杂度:使用此方法解决此问题的 O(n) 空间复杂度。 我们可以看到这种方法非常低效。 一种有效的方法可以在 O(n) 时间内解决此问题。这种方法的核心思想是首先删除表达式中所有平衡的部分。例如,我们将 "}{{}}{{" 转换为 "}{{". 当我们仔细观察时,我们可以注意到,如果我们删除平衡的部分,我们将始终剩下形如 }}…}{{…{ 的字符串。表达式遵循 0 个或多个闭括号后跟 0 个或多个开括号。 现在我们可以轻松计算需要多少次翻转才能将表达式转换为平衡表达式。令 n 为闭括号的数量,m 为开括号的数量。根据此,我们将需要 [n / 2] + [m / 2] 次翻转。因此,我们将需要 2 次翻转。 下面是上述想法的实现 代码 输出 The minimum number of reversals required are: 1 时间复杂度:此程序的 O(n) 时间复杂度。 空间复杂度:此程序将占用 O(n) 的空间复杂度。 下一主题排序颜色问题 |
? Python 列表可以包含任何 Python 对象,一组有序的值。由于列表是 Python 中可变的数据结构,我们可以添加、删除或修改此容器中的现有值。与集合不同,列表允许多个...
阅读 6 分钟
Python 与 Scala 在本教程中,我们将学习 Python 和 Scala 之间的基本区别。两种语言都有一些相似之处,但在这里我们将看到它们之间的主要区别。让我们从它们的介绍开始。什么是 Python?Python 是一种高级、通用且用户友好的动态编程语言。
阅读 3 分钟
?在本教程中,我们将学习鸭子类型。这是 Python 中的一个流行术语,它源于“如果它走起来像鸭子,游起来像鸭子,看起来像鸭子,那么它可能就是一只鸭子”这句话。以上声明给出了一个想法...
阅读 3 分钟
猴子补丁 (Monkey Patching) 是 Python 中一个令人兴奋的话题。猴子补丁是指在运行时修改类或模块。简单来说,类或模块的功能可以在运行时改变。让我们通过一个真实的例子来理解这个概念。当我们...
阅读 2 分钟
在 Python 中,分类变量是一种可以取有限数量可能值之一的变量。这些值通常是非数字的,用于表示分为类别或组的数据。分类变量也称为名义变量...
阅读 3 分钟
简介:在本文中,我们将讨论 Python 脚本中的暂停。Python 3 中使用 input() 方法从用户收集数据。出于编程目的,可能需要等待或暂停输入任务一段时间。例如,如果脚本包含...
阅读 3 分钟
如何在 Python 中打印模式 在 Python 中,for 循环用于打印各种模式。打印各种模式是面试中最常见的编程问题。多个 for 循环用于打印模式,其中第一个外部循环用于...
阅读25分钟
乳腺癌是一种恶性疾病,由乳腺细胞的 unchecked 生长引起。诊断和治疗的进步使得早期治疗和诊断成为可能。女性和男性都应该注意以下症状和体征:一个……
14 分钟阅读
程序或进程的最小单元称为线程,它可以独立运行,也可以作为操作系统设置的调度的一部分运行。计算机系统中的多任务处理是通过操作系统将一个进程划分为多个线程来实现的。一个...
阅读 6 分钟
?PostgreSQL 支持两种类型的数据来处理时间戳:timestamp 和 timestamptz。Timestamp 数据类型允许我们创建不基于时区的 时间戳。类似地,timestamptz 可以帮助我们创建带时区的时间戳。可以存储日期……
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India