56分求调,8~12个点WA
查看原帖
56分求调,8~12个点WA
1802571
MINMIN_楼主2025/7/30 11:04

代码如下:

#include<bits/stdc++.h>
using namespace std;
bool pd[105]={false};
vector<char> q;
vector<char> p;
int main(){
	cin.tie(0);
	cout.tie(0);
	ios::sync_with_stdio(0);
	string s;
	int cnt;
	cin>>s;
	int sizer=s.size();
	for(int i=0;i<sizer;i++){
		cnt=0;
		if(s[i]=='('||s[i]=='['){
			q.push_back(s[i]);
		}else{
			if(s[i]==')'){
				while(q.size()){
					cnt++;
					p.push_back(q.back());
					q.pop_back();
					if(p.front()=='['){
						break;
					}else if(p.front()=='('&&!pd[i]){
						pd[i]=true;
						pd[i-cnt]=true;
						break;
					}
				}
				while(cnt--){
					q.push_back(p.back());
					p.pop_back();
				}
			}else{
				while(q.size()){
					cnt++;
					p.push_back(q.back());
					q.pop_back();
					if(p.front()=='('){
						break;
					}else if(p.front()=='['&&!pd[i]){
						pd[i]=true;
						pd[i-cnt]=true;
						break;
					}
				}
				while(p.size()){
					q.push_back(p.back());
					p.pop_back();
				}
			}
		}
	}
	for(int i=0;i<sizer;i++){
		if(!pd[i]){
			if(s[i]==')'||s[i]=='('){
				cout<<"()";
			}else{
				cout<<"[]"; 
			}
		}else{
			cout<<s[i];
		}
	}
	return 0;
}
2025/7/30 11:04
加载中...