社区讨论

52分RE求救

P1241括号序列参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lriwbv37
此快照首次捕获于
2024/01/18 15:34
2 年前
此快照最后确认于
2024/01/18 19:12
2 年前
查看原帖
C
#include<bits/stdc++.h>
using namespace std;
string S;
int len;
char ans[110];
stack<char> s;
stack<int> x;
int main(){
	cin>>S;
	len=S.length();
	for(int i=0;i<len;i++){
		if(S[i]=='(' || S[i]=='['){
			s.push(S[i]),x.push(i);
			if(S[i]=='(') ans[i]=')';
			else ans[i]=']';
		}
		else{
			char tmp;
			if(S[i]==')') tmp='(';
			else tmp='[';
			if(s.top()==tmp){
				ans[x.top()]=' ',ans[i]=' ';
				s.pop(),x.pop();
			}else ans[i]=tmp;
		}
	}
	for(int i=0;i<len;i++){
		if(ans[i]==' ') cout<<S[i];
		else if(ans[i]=='(' || ans[i]=='[') cout<<ans[i]<<S[i];
		else cout<<S[i]<<ans[i];
	}
	return 0;
}
是类似题解第一篇的做法 TAT

回复

0 条回复,欢迎继续交流。

正在加载回复...