'?'变化左右括号,使得字符串括号匹配
给定一个包含 ‘(', )', '?',的字符串,'?'可以变为'('或者')',求共有多少中不同变法可以变出匹配的括号来。
#include<iostream>
using namespace std;
void getcount(string &s,int pos,int left,int right,int&num){
	if(left<right){
		return;
	}
	if(pos==s.size()){
		if(left==right){
			num +=1;
		}
		return;
	}
	if(s[pos]=='('){
		getcount(s,pos+1,left+1,right,num);
	}
	if(s[pos]==')'){
		getcount(s,pos+1,left,right+1,num);
	}
	if(s[pos]=='?'){
		getcount(s,pos+1,left+1,right,num);
		getcount(s,pos+1,left,right+1,num);
	}
	
}
int main(){
	string s;
	cin>>s;
	int num=0;
	getcount(s,0,0,0,num);
	cout<<num;
}
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号