52分代码求调
查看原帖
52分代码求调
1013323
wangyutian578楼主2023/8/12 15:48
#include <bits/stdc++.h>
#define MX 100
using namespace std;
int vis[MX + 10];
int main()
{
	string s;
	stack<char> p;
	stack<int> q;
	cin >> s;
	int len = s.size(),i;
	for(i = 0;i < len;i++)
	{
		if(s[i] == '[' || s[i] == '(')
		{
			p.push(s[i]);
			q.push(i);
		}
		else if(s[i] == ')' && p.top() == '(')
		{
			p.pop();
			vis[q.top()] = 1;
			vis[i] = 1;
			q.pop();
		}
		else if(s[i] == ']' && p.top() == '[')
		{
			p.pop();
			vis[q.top()] = 1;
			vis[i] = 1;
			q.pop();
		}
	}
	for(i = 0;i < len;i++)
	{
		if(vis[i] == 1)
		{
			cout << s[i];
		}
		else
		{
			if(s[i] == '(')
			{
				cout << s[i] << ')';
			}
			else if(s[i] == '[')
			{
				cout << s[i] << ']';
			}
			else if(s[i] == ')')
			{
				cout << '(' << s[i];
			}
			else
			{
				cout << '[' << s[i];
			}
		}
	}
	cout << endl;
	return 0;
}
2023/8/12 15:48
加载中...