[LeetCode] 32. Longest Valid Parentheses

[HackerRank]Merge Sort Counting Inversions Merge Sort: Counting Inversions 这道题设定了一个情景,但其实是让我们复习merge sort。那么我们就来复习一下merge sort。 Merge sort的思想是先把数组分段,递归进行mergesort,再合并起来。有一个细节,在合并的过程中,可以借助合并的两段都是sort好的数列,利用这一特性合并起来会较快一些。送上伪代码: MergeSort(ar... 阅读详情

Longest Valid Parentheses

https://leetcode.com/problems/longest-valid-parentheses/description/

括号的题目自然就想到了使用stack,然而自己最开始的想法还沿用之前的思路,用一个stack<char> stk来记录括号,这导致了括号位置信息的丢失,思考起来很麻烦,于是参考了别人的解答。
启发我的地方是栈 stack<int> stk 用来记录开括号的位置。

class Solution {
public:
    int longestValidParentheses(string s) {

        stack<int> stk;
        int res = 0;
        int start = 0;

        for (int i = 0; i<s.size(); i++)
        {
            if (s[i]=='(') stk.push(i);// 遇到'('则入栈
            else if (stk.empty()) start = i+1;// 当栈中所有的'('都被匹配了,又遇到闭括号,表示此处需要断开
            else {
                stk.pop();
                // 当栈为空,说明前方所有开括号均被匹配,可以和前一串相连,若不为空则不相连
                res = stk.empty() ? max(res, i-start+1) : max(res, i-stk.top());
            }
        }
        return res;
    }
};

DP的解法我还不太熟悉,今后学习了DP后再来研究。

Reference

stack 解法
DP 解法

mtk-drm初始化 mtk-drm初始化走读 阅读详情

相关推荐

Polyworks脚本开发实战指南:高效生成数据彩图与报告的关键指令解析

本文深入解析了Polyworks脚本开发中生成数据彩图与自动化报告的核心指令。通过实战案例,详细介绍了REFERENCE_SURFACE、THICKNESS和CLEARANCE等关键彩图生成指令的正确用法与常见避坑点,并阐述了如何利用REPORT_ITEM命令实现从截图、表格生成到智能排版的全流程自动化,旨在帮助三维检测与质量控制工程师大幅提升工作效率与报告标准化水平。

weixin_29209825的博客 487

LeetCode --- 32. Longest Valid Parentheses

题目链接:Longest Valid Parentheses Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid paren

makuiyu的专栏 2831

Wireshark协议分析之DNS.zip

该文件包内含4个*.pcapng数据包,一个是简单的DNS查询,两个描述的是DNS递归查询,最后一个描述的是DNS完整区域传送,下载之后可以直接进行分析

leetcode记录32.Longest Valid Parentheses

leetcode记录32.Longest Valid Parentheses hard Runtime: 8 ms, faster than 98.79% of C++ online submissions for Longest Valid Parentheses. Memory Usage: 10.6 MB, less than 80.80% of C++ online submissions...

我的博客 191

LeetCode 32. Longest Valid Parentheses

问题链接 LeetCode 32. Longest Valid Parentheses 题目解析 给出只包含左右括号的字符串,返回最长的括号匹配字符串长度。 解题思路 括号匹配问题一般借助 栈,便于理解。定义 \(start\) 记录合法字符串的起始位置,遍历字符串: 当遇到左括号,则把其索引压入栈中; 当遇到右括号,判断栈是否为空,若为空,说明当前右括号无法匹配,则需要更新合法开始位置为i+1...

weixin_30906701的博客 98

Leetcode32. Longest Valid Parentheses

题目地址: https://leetcode.com/problems/longest-valid-parentheses/

数学、算法爱好者的博客 350

Leetcode——32. Longest Valid Parentheses

一、题目描述 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring

parishong的博客 424

leetcode 32. Longest Valid Parentheses

leetcode 32. Longest Valid Parentheses  奇了怪了,为什么java版本的算法TLE,c++版本的代码acc,难到是两种语言本身的区别:String 以及 stack操作 java版本的: package my; import java.util.Stack; public class Solution { public stat

独钓寒江雪 380

leetcode32——Longest Valid Parentheses

题目大意:给出由左右小括号组成的字符串,找出最长的合法字符串长度 分析:暴力解法或者dp。 暴力:枚举起始点,然后记录左右括号个数进行判断。 dp:状态:dp[i]——以下标i结尾的最长合法长度 初始化:dp[i]=0 结果:max{dp[i]} ...

tzyshiwolaogongya的博客 234

[Java] LeetCode32 Longest Valid Parentheses

[Java] LeetCode32 Longest Valid Parentheses

fumier的专栏 986

[Leetcode] 32. Longest Valid Parentheses

Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()",

Matthew的练习场 508

堆,堆在C++中用法

Heap 堆有最大堆与最小堆,也有对应的push和pop操作。在最大堆中,最大的元素在堆顶,pop会将最大的元素推出, 最小堆则反之。 C++中的用法 C++中的堆,要基于向量使用。操作基于三个函数std::make_heap,std::push_heap,std::pop_heap,并且要配合push_back与pop_back使用。需要#include &lt;algorithm&g...

JOHZEN 1335

[HackerRank]BFS Shortest Reach in a Graph

BFS: Shortest Reach in a Graph Challenge Name: BFS: Shortest Reach in a Graph Consider an undirected graph consisting of nnn nodes where each node is labeled from 111 to nnn and the edge betw...

JOHZEN 759

[HackerRank]Tries Contacts

Tries: Contacts 这题让我门建立一个树来存电话簿的名字,并能够返回以某一字符串开头的名字有多少个。 难点在与自己建立一个数据结构。我的方法是建立一个字符树,每个节点存下有几个children,以及一个hash表,用于索引之后的字符。如下: struct wordTree{ int cnt; unordered_map&lt;char, wordTree*&g...

JOHZEN 643

[HackerRank]Sorting Comparator

Sorting: Comparator 这道题让我们将分数从大到小排序,遇到分数相同时候,按名字字母从小到大排序。 一开始我还想着要手写一个快速排序,后来发现这道题其实是一个教学,教我们字母自定义比较函数,并用于STL的函数中。 这样一来思路就很清晰了,比较函数很简单,如果分数高,或者分数相同但字母小,则返回true。 bool comp(Player&amp; a, Player&a...

JOHZEN 448

[LeetCode]37. Sudoku Solver

37. Sudoku Solver 求解数独。前两天做了验证数独那道题,当时对于遍历hash的使用有了一些感悟,但看这道题时候特别头疼。这两天HackerRank也刷了一下,对于DFS和BFS的理解加深了一些,渐渐的思路就变得清晰。其实是很暴力的解法,但把他转化为代码,对几天前的我来说还有一些难度。经过这两天的学习,总算是可以勉强完成,但参考别人的答案后,果然进步空间还比较大。 我之前的版本,...

JOHZEN 420

[LeetCode]39. Combination Sum

39. Combination Sum 题目要求列出所有的可能情况,我也想到了要使用递归去解决,但具体的方法却很头疼,依旧是参考了大佬的答案,豁然开朗http://www.cnblogs.com/grandyang/p/4419259.html。 DFS中start变量的引用可以防止递归的答案重复,很优秀。 正如大佬所说,返回所有符合要求的解的题目就想到递归,而思路多相似,要新写一个递归的函...

JOHZEN 367

[LeetCode]43. Multiply Strings

43. Multiply Strings 这道题要做的是将两个写成了string的数字相乘,思路很清晰,就是手算乘法的式子。我的想法是把这个过程模块化,写作一个字符乘以一个string和错位相加两个部分,可能实力还有欠缺写的不是很简洁。 class Solution { public: string multiply(string num1, string num2) { ...

JOHZEN 336
上一篇: Introduction to adaptive rectangular decomposition
下一篇: [LeetCode]33. Search in Rotated Sorted Array
jinnsjj
博客等级 码龄14年 42粉丝 37原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值