算法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/ 博客原创~


相关内容

热门资讯

4月份银行理财规模环比增加2.... 钛媒体App 5月16日消息,银行理财市场在4月份迎来规模与收益的双增长。据华源证券廖志明团队发布的...
【光明日报】黑龙江:免签红利释... 5月10日早上7时,一辆国际大巴缓缓停靠在黑龙江绥芬河公路口岸入境大厅前。游客们提着大包小裹,依次走...
又一跨国高端化工合作项目落子乐... 5月15日,福华化学携手瑞士特种化学品企业科莱恩打造的创新型高端磷系无卤阻燃剂项目(以下简称“福华科...
鸿蒙智行:已拥有1951家销售... IT之家 5 月 15 日消息,鸿蒙智行智界 V9 发布会正在进行,官方透露目前已拥有 1951 家...
黄金、白银,直线大跌! 5月15日晚间,贵金属价格突然大跌! 截至记者发稿时,现货黄金跌超2%,暂报4553美元/盎司附近。...
央视《焦点访谈》聚焦!万兴科技... 深圳商报·读创客户端首席记者 谢惠茜 5月14日,中央电视台《焦点访谈》推出专题节目《扩能提质强服务...
东方嘉富人寿董事长履职半年被换... 文|达摩财经 东方嘉富人寿再度进行人事调整。 5月13日,东方嘉富人寿发布公告称,自2026年4月...
重返西决!文班19+6卡斯尔3... 【搜狐体育战报】北京时间5月16日NBA季后赛,客场作战的马刺以139-109击败森林狼,总比分4-...
原创 美... 十万亿美债为什么还没有崩盘?或许答案在于,中国的存在让局势与众不同。现在的美债就像一张看似脆弱的网,...
原创 茅... 最近打开股票软件看白酒板块,是不是心里拔凉拔凉的? 茅台又回到1300元区间了,五粮液跌破90元,洋...
茅台宣布涨价 5月15日深夜,“i茅台”APP发布公告称,按照随行就市、供需适配、量价平衡、相对平稳的原则,贵州茅...
最高涨200元!茅台官宣4款产... 贵州茅台(600519.SH)凌晨宣布涨价几款产品。 茅台数字营销平台“i茅台”今日(5月16日)发...
面向地方国资产融转型全链条,X... 5月15日,XOD创新投融资模式3.0产品发布会在广州举办。该产品主要面向地方国资产融协同创新转型提...
2026Q1:10家上市商超9... 截至4月30日,所有A股上市公司2026年Q1财报全部出炉,传统商超也晒出自己的成绩单。10家披露的...
入主盟科药业失利后,拟借款2.... 来源:时代周报-时代在线 继去年试图通过定增入主盟科药业(688373.SH)失败后,海鲸药业再度出...
同比激增86%、规模突破760... 图片来源:界面图库 界面新闻记者 | 孙艺真 今年以来,证券行业融资补血热潮持续升温。前5个月...
促进青年消费,扶持青年创业,上... 5月14日,上海市政协团青界别、经济界跨界别活动在市政协全过程人民民主实践点举行。 今年初,团市委立...
苹果股价昨日创收盘新高,站上3... IT之家 5 月 16 日消息,苹果公司股价昨日(5 月 15 日)收于 300.23 美元,首次站...
杭州首批配售型保障房正式入市 杭州首批配售型保障房正式入市 价格约为周边商品房5折,18日开始报名 不能入市交易,可由政府指定机构...
“后巴菲特时代”,伯克希尔调仓... 当地时间5月15日,伯克希尔披露了2026年一季度美股持仓报告。这是伯克希尔在巴菲特卸任CEO并由阿...