自己使用堆栈没有成功,主要原因是很久没有敲代码,再加上没有演算整个过程,凭空想象,非常的不好
贴自己没成功的代码吧
class Solution {
public:
int longestValidParentheses(string s) {
stack<string>temp;
int number=0;
int number_temp=0;
int length = s.size();
if(length == 0){
return 0;
}
stack<int>temp_1;
for(int i=0;i<length;i++)
{
string t = s.substr(i,1);
if(t=="("){
temp.push(t);
temp.push(i);
}
else{
if (temp.empty()){
number_temp=0;
continue;
}
else if(temp.top()=="("){
number_temp++;
temp.pop();
temp_1.pop();
cout<<number_temp;
}
else{
number=max(number_temp,number);
number_temp=0;
}
}
}
number=max(number_temp,number);
while(!temp_1.empty()){
int t = temp_1.top();
}
return number*2;
}
};