Leetcode Hot100 第38题 301.删除无效的括号

devtools/2025/3/13 5:10:12/

class Solution {
public:int len=0;int max_score=0;unordered_set<string> hash;int n=0;vector<string> removeInvalidParentheses(string s) {int l=0, r=0;// l代表需要删除的左括号数量,r代表需要删除的右括号数量n = s.size();int right=0,left=0;// 为了剪枝,合理的字符串中最多出现多少个左括号for(char c:s){if(c=='('){l++;left++;}else if(c==')'){if(l!=0) l--;else r++;right++;}}len = n - l - r;// 删除掉不合法的括号后,最后字符串的长度max_score = min(left,right);dfs(s,"",0,0,l,r);return {hash.begin(),hash.end()};}void dfs(string s, string res, int score, int index, int l, int r){if(res.size()==len&&score==0){hash.insert(res);return;}if(index==n) return;if(score<0||score>max_score) return; //剪枝一if(l<0||r<0) return; //剪枝二char c = s[index];if(c=='('){dfs(s, res+c, score+1, index+1, l, r);dfs(s, res, score, index+1, l-1, r);}else if(c==')'){dfs(s, res+c, score-1, index+1, l, r);dfs(s, res, score, index+1, l, r-1);}else{dfs(s, res+c, score, index+1, l, r);}}
};


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

相关文章

网络安全-使用DeepSeek来获取sqlmap的攻击payload

文章目录 概述DeepSeek使用创建示例数据库创建API测试sqlmap部分日志参考 概述 今天来使用DeepSeek做安全测试&#xff0c;看看在有思路的情况下实现的快不快。 DeepSeek使用 我有一个思路&#xff0c;想要测试sqlmap工具如何dump数据库的&#xff1a; 连接mysql数据库&#…

音频进阶学习十九——逆系统(简单进行回声消除)

文章目录 前言一、可逆系统1.定义2.解卷积3.逆系统恢复原始信号过程4.逆系统与原系统的零极点关系 二、使用逆系统去除回声获取原信号的频谱原系统和逆系统幅频响应和相频响应使用逆系统恢复原始信号整体代码如下 总结 前言 在上一篇音频进阶学习十八——幅频响应相同系统、全…

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法

总目录 前言 在C#中&#xff0c;委托&#xff08;Delegate&#xff09;提供了多种调用方式&#xff0c;包括 Invoke、BeginInvoke、EndInvoke 和 DynamicInvoke。每种调用方式都有其特定的用途和适用场景。下面将详细介绍这些方法的区别与联系。 一、 Invoke方法 1. 定义 In…

【从零开始学习计算机科学】操作系统(二)进程与线程

【从零开始学习计算机科学】操作系统(二)进程与线程 进程PCB进程状态执行模式进程的创建进程的切换进程的撤销进程的阻塞和唤醒进程管理1,写时复制(写时拷贝)2,线程池3,套接字(Socket)4,远程过程调用5,远程方法调用线程进程 进程这个概念体现在并发执行的程序模型中…

Go语言Viper配置详解:conf库优雅解析实战

在现代软件开发中&#xff0c;配置文件是不可或缺的一部分。无论是 YAML、JSON 还是 TOML&#xff0c;如何高效地将这些格式解析到 Go 结构体中&#xff0c;同时支持动态更新&#xff0c;一直是开发者的痛点。好消息是&#xff0c;基于 Viper 封装的 conf 库提供了一个简洁而强…

正则表达式(2)匹配规则

正则表达式的匹配规则定义了如何识别字符串中的特定模式。这些规则包括字符类匹配、元字符匹配、数量词、字符转义和分组。 字符类匹配 字符类匹配允许你指定一个字符集合&#xff0c;并匹配该集合中的任意单个字符。这是通过方括号 [] 来实现的。 简单字符类&#xff1a;[abc…

如何在 React 中实现错误边界?

在 React 中实现错误边界 错误边界是 React 提供的一种机制&#xff0c;用于捕获子组件树中的 JavaScript 错误&#xff0c;并展示回退 UI。它可以帮助开发者更好地处理错误&#xff0c;提升用户体验。本文将详细介绍如何在 React 中实现错误边界&#xff0c;包括其工作原理、…

git subtree更新子仓库的方式

在使用 git subtree 管理的仓库中&#xff0c;子仓库的更新可以通过以下步骤完成&#xff1a; 1. 更新子仓库到主仓库 如果子仓库有新的更新&#xff0c;可以将这些更新拉取到主仓库中&#xff1a; git subtree pull --prefix<子仓库路径> <子仓库地址> <分支…