63分求助!
查看原帖
63分求助!
68574
HGJH°L楼主2020/9/6 19:27
#include<bits/stdc++.h>

using namespace std;

bool f[102];//标记是否配对
string s;
int i,j;

int main(int argc,char** argv)
{
	
	cin >>s;
	for (i=0;i<s.size();i++)
	{
		if (s[i]==')')//试图配对
			for (j=i-1;j>=0;j--)
				if (s[j]=='('&&!f[j])//如果找到了还没被标记的同种左括号
				{
					f[i]=true;
					f[j]=true;
					break;
				}
		if (s[i]==']')
			for (j=i-1;j>=0;j--)
				if (s[j]=='['&&!f[j])//如果找到了还没被标记的同种左括号
				{
					f[i]=true;
					f[j]=true;
					break;
				}
	}
	for (i=0;i<s.size();i++)
		switch (s[i])//分类讨论
		{
			case '(':
			{
				cout <<s[i];
				if (!f[i])
					cout <<")";
				break;
			}
			case '[':
			{
				cout <<s[i];
				if (!f[i])
					cout <<"]";
				break;
			}
			case ')':
			{
				if (!f[i])
					cout <<"(";
				cout <<s[i];
				break;
			}
			case ']':
			{
				if (!f[i])
					cout <<"[";
				cout <<s[i];
				break;
			}
			default :
			{
				cout <<s[i];
				break;
			}
		}
	cout <<endl;
	return 0;
}

RT,希望能有好心的大佬帮我康康

这是原网址

2020/9/6 19:27
加载中...