算法leetcode|32. 最长有效括号(rust重拳出击)
admin
2024-05-13 21:22:32
0

文章目录

  • 32. 最长有效括号:
    • 样例 1:
    • 样例 2:
    • 样例 3:
    • 提示:
  • 分析:
  • 题解:
    • rust
    • go
    • c++
    • c
    • python
    • java


32. 最长有效括号:

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

样例 1:

输入:s = "(()"输出:2解释:最长有效括号子串是 "()"

样例 2:

输入:s = ")()())"输出:4解释:最长有效括号子串是 "()()"

样例 3:

输入:s = ""输出:0

提示:

  • 0 <= s.length <= 3 * 104
  • s[i]'('')'

分析:

  • 面对这道算法题目,二当家的陷入了沉思。
  • 只有小括号,判断有效是关键。
  • 从左向右看,左括号数始终大于等于右括号数,并且最终左右括号数相等。
  • 从右向左看,右括号数始终大于等于左括号数,并且最终左右括号数相等。

题解:

rust

impl Solution {pub fn longest_valid_parentheses(s: String) -> i32 {let (mut left, mut right, mut maxlength) = (0, 0, 0);s.as_bytes().iter().for_each(|&b| {if b == b'(' {left += 1;} else {right += 1;}if left == right {maxlength = maxlength.max(2 * right);} else if right > left {left = 0;right = 0;}});left = 0;right = 0;s.as_bytes().iter().rev().for_each(|&b| {if b == b'(' {left += 1;} else {right += 1;}if left == right {maxlength = maxlength.max(2 * left);} else if left > right {left = 0;right = 0;}});return maxlength;}
}

go

func longestValidParentheses(s string) int {max := func(x, y int) int {if x > y {return x}return y}left, right, maxLength := 0, 0, 0for i := 0; i < len(s); i++ {if s[i] == '(' {left++} else {right++}if left == right {maxLength = max(maxLength, 2*right)} else if right > left {left, right = 0, 0}}left, right = 0, 0for i := len(s) - 1; i >= 0; i-- {if s[i] == '(' {left++} else {right++}if left == right {maxLength = max(maxLength, 2*left)} else if left > right {left, right = 0, 0}}return maxLength
}

c++

class Solution {
public:int longestValidParentheses(string s) {int left = 0, right = 0, maxlength = 0;for (int i = 0; i < s.length(); ++i) {if (s[i] == '(') {left++;} else {right++;}if (left == right) {maxlength = max(maxlength, 2 * right);} else if (right > left) {left = right = 0;}}left = right = 0;for (int i = (int) s.length() - 1; i >= 0; --i) {if (s[i] == '(') {left++;} else {right++;}if (left == right) {maxlength = max(maxlength, 2 * left);} else if (left > right) {left = right = 0;}}return maxlength;}
};

c

int longestValidParentheses(char * s){const int len = strlen(s);int left = 0, right = 0, maxlength = 0;for (int i = 0; i < len; ++i) {if (s[i] == '(') {left++;} else {right++;}if (left == right) {maxlength = fmax(maxlength, 2 * right);} else if (right > left) {left = right = 0;}}left = right = 0;for (int i = len - 1; i >= 0; --i) {if (s[i] == '(') {left++;} else {right++;}if (left == right) {maxlength = fmax(maxlength, 2 * left);} else if (left > right) {left = right = 0;}}return maxlength;
}

python

class Solution:def longestValidParentheses(self, s: str) -> int:left, right, max_length = 0, 0, 0for i in range(len(s)):if s[i] == '(':left += 1else:right += 1if left == right:max_length = max(max_length, 2 * right)elif right > left:left, right = 0, 0left, right = 0, 0for i in range(len(s) - 1, -1, -1):if s[i] == '(':left += 1else:right += 1if left == right:max_length = max(max_length, 2 * left)elif left > right:left, right = 0, 0return max_length

java

class Solution {public int longestValidParentheses(String s) {int left = 0, right = 0, maxlength = 0;for (int i = 0; i < s.length(); ++i) {if (s.charAt(i) == '(') {left++;} else {right++;}if (left == right) {maxlength = Math.max(maxlength, 2 * right);} else if (right > left) {left = right = 0;}}left = right = 0;for (int i = s.length() - 1; i >= 0; --i) {if (s.charAt(i) == '(') {left++;} else {right++;}if (left == right) {maxlength = Math.max(maxlength, 2 * left);} else if (left > right) {left = right = 0;}}return maxlength;}
}

非常感谢你阅读本文~
欢迎【点赞】【收藏】【评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~


相关内容

热门资讯

美联储哈玛克:目前银行体系看起... 美联储哈玛克:目前银行体系看起来相当健康。 来源:金融界AI电报
社区科普讲座开讲 教你如何科学... 社区科普讲座开讲教你如何科学应对阿尔兹海默病 近日,一场主题为“科学应对阿尔兹海默病”的社区科普讲座...
海报观察丨6000万消费券+发... 海报新闻记者 朱延鲁 报道 春节是万家团圆的美好时刻,也是烟火升腾的消费旺季。保障好老百姓的节日消费...
突然大爆发,这只ETF冲涨停 来源:ETF洞察 中国基金报记者 王思文 大家好,这里是ETF洞察。今天是2026年2月10日星期二...
和讯投顾王宇:还剩三天,题材能... 2月10日,和讯投顾王宇表示,当下市场题材分歧愈发明显,节前仅剩三个交易日,到底还能不能继续博弈?极...
美股三大指数集体高开 新闻荐读 美东时间周二,美股三大指数集体高开,截至北京时间23:00左右,道指涨逾360点,续创盘中...
华润置地,任命新的集团营销负责... 近日,市场消息,华润置地原杭州公司分管副总朱勇,被任命为集团运营管理部副总经理,分管整个开发销售型业...
原创 比... 当地时间2月9日,路透社的一则报道引发广泛关注:中国汽车制造商比亚迪已正式对美国政府提起诉讼,剑指美...
裕同科技拟4.49亿元收购华研... 苹果、泡泡玛特主要供应商裕同科技(002831)2月10日晚间公告,拟4.49亿元收购东莞市华研新材...
巨亏50亿!AI制药独角兽IP... 2月4日,AI+可编程药物公司Generate:Biomedicines向美国证券交易委员会(SEC...
多家知名品牌宣布:春节期间,涨... 过年脚步临近,春节假期是线上消费的高峰期,也是运力最为紧张的时期。顺丰、京东物流、圆通、申通、中通、...
担忧受AI冲击 美国微软公司股... (央视财经《天下财经》)据彭博社等媒体9日报道,当天,美国梅利乌斯研究公司将微软公司的股票评级从“买...
原创 2... 写在文章前的声明:在本文之前的说明:本文中所列的投资信息,只是一个对基金资产净值进行排行的客观描述,...
青藏高原发现天然氢:可以拉开能... 近日,中国科学家在青藏高原的岩石里,第一次实实在在地“看到”了天然氢气。 它不是通过计算或地表泄漏推...
上海小南国回应餐厅停止营运 北京商报讯(记者 郭缤璐)2月10日晚间,上海小南国控股有限公司发布公告,对于上海小南国品牌在上海经...
招金矿业致歉:向遇难者表示沉痛... 2月10日,招金矿业在港交所发布公告: 最近,招金矿业股份有限公司蚕庄金矿(“蚕庄金矿”)上庄矿段...
君乐宝上市布局细分赛道领跑增长... 2026年1月19日,中国领先的综合乳制品企业君乐宝乳业集团股份有限公司(简称“君乐宝”)正式向香港...
酒业渠道商再闯港股,名品世家董... 蓝鲸新闻2月10日讯(记者 朱欣悦)2月10日,港股GEM上市公司环球印馆控股有限公司(08448....
上市银行,迎密集调研! 2026年以来,上市银行迎来机构密集调研,其中沿海经济发达区域的中小银行是机构重点调研对象。 截至2...
豆包压哨参战,决战春节流量窗口... 本报(chinatimes.net.cn)记者卢晓 北京报道 春节AI红包大战继续升温。 2月10日...