c_cpp 最长有效子字符串的长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最长有效子字符串的长度相关的知识,希望对你有一定的参考价值。

/*
http://ideone.com/rdL7A2
http://www.geeksforgeeks.org/length-of-the-longest-valid-substring/
http://www.practice.geeksforgeeks.org/problem-page.php?pid=960
*/

#include<bits/stdc++.h>
using namespace std; 

int validSubString(string str){
	int len = str.size();
	stack<char> s;
	s.push(-1);
	int count = 0;
	for(int i=0; i<len; i++){
		if(str[i] == '(')
			s.push(i);
		else{
			s.pop();
			if(!s.empty()){
				count = max(count, i - s.top());
			}else{
				s.push(i);
			}
		}
	}
	return count;
}
int main() {
	int t;
	cin >> t;
	while(t--){
		string s;
		cin >> s;
		cout << validSubString(s) <<endl;
	}
	return 0;
}

以上是关于c_cpp 最长有效子字符串的长度的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 找到两个最长的非重叠回文子序列的长度的乘积

c_cpp 打印最长的公共子字符串

leetcode题解之32. 最长有效括号

c_cpp 最长的子字符串,不重复字符

c_cpp 在一个长字符串中,找到出现不止一次的最长子字符串,也称为最长的重复子字符串。

最长回文子串