请大佬们帮我看看我代码哪错了
查看原帖
请大佬们帮我看看我代码哪错了
412042
gyy20081201楼主2021/1/24 11:22
#include<bits/stdc++.h>
using namespace std;
string s,stk;
int tp,ans=1,k=0,vis[105];
int main(){
	cin>>s;
	int len=s.size();
	memset(vis,0,sizeof(vis));
	for(int i=0;i<len;i++){
		if(s[i+k]=='('||s[i+k]=='['){
			stk[++tp]=s[i+k];
		}
		else{
			if(tp>0){
				switch(s[i+k]){
					case ')' :
						if(stk[tp]=='('){tp--;vis[i+k-1]=1;}
						else {
							s.insert(i-1+k,1,'(');
							k++;
					    }
						break;
					case ']' :
						if(stk[tp]=='['){tp--;vis[i+k-1]=1;}
						else {
							s.insert(i-1+k,1,'[');
							k++;
					    }
						break;
				}
			} 
		}
	}
	for(int i=0;i<len+k;i++){
		if(!vis[k]&&(s[i]=='('||s[i]=='[')){
			if(s[i]=='('){s.insert(i+1,1,')');k++;}
			else if(s[i]=='['){s.insert(i+1,1,']');k++;}
		}
	}
	cout<<s<<endl;
}
2021/1/24 11:22
加载中...