ニンニクラッキーポイントスタックを計算する

トピック:完全な括弧の一致の数を数えます。

アイデア:スタックの使用。

注:ここでは、先頭が ")"の場合の取引は使用できません。

#include<iostream>
#include<algorithm>
#include<cstdio> 
#include<stack>
#include<cstring>
using namespace std;
const int maxa=1e5+10;
char a[maxa];
int deal(){
	int temp=0;
	for(int i=0;i<strlen(a);i++)
		if(a[i]=='('){
			temp=i;
			break;
		}
	return temp;
}
int main(){
	stack<char>s;
	while(cin>>a){
		int ans=0;
		int temp=deal();//去除前缀')'; 
		for(int i=temp;i<strlen(a);i++){
			if(a[i]=='(')	s.push(a[i]);
			else if(a[i]==')'&&!s.empty()){
				s.pop();
				ans++;
			}
		}
		printf("%d\n",ans);
	}
} 

 

226のオリジナル記事を公開 90の賞賛 10,000以上のビュー

おすすめ

転載: blog.csdn.net/queque_heiya/article/details/105592810