当前位置: 首页 > wzjs >正文

上传网站视频要怎么做才清楚贵阳市建设局地址网站

上传网站视频要怎么做才清楚,贵阳市建设局地址网站,品牌网站建设公,温州制作网站软件32. 最长有效括号 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二:栈 class Solution { public:int longestValid…

32. 最长有效括号

给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

https://leetcode.cn/problems/longest-valid-parentheses/

2.方法二:栈

在这里插入图片描述

class Solution {
public:int longestValidParentheses(string s) {int max_len = 0, cur_len = 0;stack<pair<char,int>> sub_s;sub_s.push({' ',-1 });for (int i = 0; i < s.size(); i++) {if (s[i] == '(') {sub_s.push({'(',i});}else {// 如果是)的话if (sub_s.top().first == -1) {// 不可能出现匹配了,记录失配点sub_s.push({ ')',i });}else {// 栈里有个(if (sub_s.top().first == '(') {sub_s.pop();cur_len = i - sub_s.top().second;if (max_len < cur_len) {max_len = cur_len;}}else {// 否则失配sub_s.push({ ')',i });}}}}return max_len;}
};

1.方法一:动态规划

在这里插入图片描述

在这里插入图片描述

class Solution {
public:int longestValidParentheses(string s) {if (s.size() <= 1) {return 0;}vector<int> dp(s.size());dp[0] = 0;int max_len = 0;for (int i = 1; i < s.size(); i++) {if (s[i] == ')' && s[i - 1] == '(') {// 是()()()这样连着的,就可以逐个累积if (i > 2) {dp[i] = 2 + dp[i - 2];} else {dp[i] = 2;}} else if (s[i] == ')' && s[i - 1] == ')') {// ……)) 这样的样子,可能是// 情况1:()) 不匹配// 情况2:(()) 匹配了并且前面没有可以匹配的了// 情况3:()()()(())匹配而且前面还有可以匹配的if (i - dp[i - 1] - 1 >= 0 && s[i - dp[i - 1] - 1] == '(') {if (i - dp[i - 1] - 2 >= 0) {dp[i] = dp[i - dp[i - 1] - 2] + 2 + dp[i - 1];} else {dp[i] = dp[i - 1] + 2;}} else {dp[i] = 0;}} else {dp[i] = 0;}if (max_len < dp[i]) {max_len = dp[i];}}return max_len;}
};

方法三:贪心算法

我觉得这个方法有点类似这个题的算法:

【算法day19】括号生成——数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合

也就是说,通过判断左右括号的数量来判断是否匹配
在这里插入图片描述

但是这个算法没有考虑()(((()的情况,这个显然左括号很多,但是右括号严重缺少。
所以我们从右往左再类似地看一次,这次判断 ,左括号数大于右括号数,就失配,令当前匹配数量为0.

在这里插入图片描述

class Solution {
public:int longestValidParentheses(string s) {int cur_len = 0, max_len = 0;int left_num = 0, right_num = 0;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') {++left_num;} else if (s[i] == ')') {++right_num;}if (right_num > left_num) {right_num = 0;left_num = 0;} else if(right_num==left_num){cur_len = 2 * min(left_num, right_num);if (cur_len > max_len) {max_len = cur_len;}}}left_num = 0, right_num = 0;for (int i = s.size() - 1; i < s.size(); i--) {if (s[i] == '(') {++left_num;} else if (s[i] == ')') {++right_num;}if (right_num < left_num) {right_num = 0;left_num = 0;} else if (right_num == left_num) {cur_len = 2 * min(left_num, right_num);if (cur_len > max_len) {max_len = cur_len;}}}return max_len;}
};
http://www.dtcms.com/wzjs/553573.html

相关文章:

  • 怎么做情侣网站wordpress 添加分享
  • 什么是网站权重上海百度推广官方电话
  • 美食网站建设页面要求建立企业网站的形式有哪些
  • 我为群众办实事心得体会优化模型数学建模
  • 做网站哪个最好iis 多网站安全设置
  • 做羞羞网站百度业务范围
  • 沈阳做网站开发公司域名com和cn的区别
  • 南岸区网站建设小程序商店助手
  • 彩票网站怎么做赚钱吗html编辑器的使用方法
  • wordpress有多少网站江苏省城乡与建设厅网站
  • 建网站要注意的细节阿里云建站中级版和高级版
  • 网站建设与推广合肥今天的北京新闻
  • 学校网站建设要点网站建设费用自建
  • 宁波自助建站模板上海公司黄页
  • 深圳罗湖企业网站推广做爰网站
  • 常州建站公司模板国内品牌设计公司
  • 下载asp做网站珠宝wordpress主题
  • wordpress中英网站插件最彻底的手机优化软件
  • 网站文章要求东北大学秦皇岛吧
  • 网站 建设 计划书私人小工厂做网站价格
  • 自己做采集电影网站韩城建设局网站
  • 企业网站 asp.net安徽海绵城市建设协会网站
  • 巴基斯坦人做网站怎么样贵州省住房和城乡建设网站
  • 沧州 网站建设网站优化 英文
  • 经营网站icp备案要求安阳县面积
  • 网站搭建什么意思亚马逊网站开发者平台
  • 如何做网站赚钱6建设网站需要虚拟空间
  • wordpress升级数据库谷歌seo推广服务
  • 做一个线上app多少钱seo两个域名一个网站有影响
  • 自助餐团购网站建设网络推广方案七步法