【Leetcode 每日一题】1963. 使字符串平衡的最小交换次数

devtools/2025/3/18 5:46:55/

问题背景

给你一个字符串 s s s下标从 0 0 0 开始 ,且长度为偶数 n n n。字符串 恰好 n / 2 n / 2 n/2 个开括号 ‘[’ 和 n / 2 n / 2 n/2 个闭括号 ‘]’ 组成。
只有能满足下述所有条件的字符串才能称为 平衡字符串

  • 字符串是一个空字符串,或者
  • 字符串可以记作 A B AB AB,其中 A A A B B B 都是 平衡字符串 ,或者
  • 字符串可以写成 [ C ] [C] [C],其中 C C C 是一个 平衡字符串

你可以交换 任意 两个下标所对应的括号 任意 次数。
返回使 s s s 变成 平衡字符串 所需要的 最小 交换次数。

数据约束

  • n = s . l e n g t h n = s.length n=s.length
  • 2 ≤ n ≤ 1 0 6 2 \le n \le 10 ^ 6 2n106
  • n n n 为偶数。
  • s [ i ] s[i] s[i] 为’[’ 或 ‘]’
  • 开括号 ‘[’ 的数目为 n / 2 n / 2 n/2,闭括号 ‘]’ 的数目也是 n / 2 n / 2 n/2

解题过程

分析清楚过程之后代码就很好写,可以通过积分制来判断字符串的平衡情况,遇到左括号就增加,遇到右括号就减少。
遍历的过程中不必真的进行交换,题目保证了字符串一定能转化成平衡的情形,那总积分就不可能为负。
不交换会导致平衡时为零的分数额外进行了一倍的增加,修正一下就可以得到最终的结果。

具体实现

class Solution {public int minSwaps(String s) {int res = 0;for (char c : s.toCharArray()) {if (c == '[' || res == 0) {res++;} else {res--;}}return res >>> 1;}
}

http://www.ppmy.cn/devtools/168000.html

相关文章

ai-1 搭建python

努力学习ai 1、python下载 现在使用版本就不要使用python2了,不维护了。 下载地址:https://www.python.org/getit/ 2、安装 自定义安装,勾选下面两个复选框,剩下的就下一步 3、 测试安装成功否 4、idea安装插件 5、使用插件…

Go语言中的错误处理与异常恢复:性能对比与实践思考

Gone是一款轻量级Go依赖注入框架,通过简洁的标签声明实现自动组件管理。它提供零侵入设计、完整生命周期控制和极低运行时开销,让开发者专注于业务逻辑而非依赖关系处理。 项目地址: https://github.com/gone-io/gone 文章目录 Go的错误处理哲…

Linux信号的产生

目录 一、键盘也能发信号 1. 终端按键与信号 2. 核心转储是什么? 3. 核心转储的作用与调试应用 3.1 核心转储的核心价值 3.2 如何利用核心转储调试程序 3.3 Core Dump标志与进程状态 3.4 信号处理与特殊限制 二、系统函数发信号 1. kill函数 2. raise函数…

无SIM卡时代即将来临?eSIM才是智联未来?

在数字化与智能化飞速发展的今天,eSIM(嵌入式 SIM 卡)正悄然改变我们的连接方式。与传统物理 SIM 卡不同,eSIM 直接将 SIM 功能嵌入设备中,无需插拔卡片即可实现网络切换和设备连接。无论是智能手机、智能手表&#xf…

C#RTSP代理推流程序

将不支持rtsp的相机通过rtspserver实现推流 功能 1. rtsp交互 2. udp推流 3. Bitmap转H264

高级java每日一道面试题-2025年2月26日-框架篇[Mybatis篇]-Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ?

如果有遗漏,评论区告诉我进行补充 面试官: Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式 ? 我回答: 在Java高级面试中讨论MyBatis如何将SQL执行结果封装为目标对象并返回的过程时,我们可以从过程细节和映射形式两个方面来综合解答这个问…

芯谷D6211B:IP摄像头IR滤波器开关驱动的理想选择

在IP摄像头的设计中,IR滤波器的切换对于实现日夜转换功能至关重要。芯谷D6211B作为一款专为IR-Cut Removable(ICR)模块设计的IR滤波器开关驱动IC,以其低饱和电压、低待机电流和丰富的保护功能,为IP摄像头的IR滤波器切换…

ONNX:统一深度学习工作流的关键枢纽

引言 在深度学习领域,模型创建与部署的割裂曾是核心挑战。不同框架训练的模型难以在多样环境部署,而 ONNX(Open Neural Network Exchange)作为开放式神经网络交换格式,搭建起从模型创建到部署的统一桥梁,完…