为什么!!
查看原帖
为什么!!
782718
Litter_Yin楼主2023/12/16 13:23

第一个样例OK,第二个样例出不来TAT

#include<bits/stdc++.h>
using namespace std;

stack <char> sk;
string s, r, t;
long long pos, maxx = -1, sum;

int main()
{
	cin >> s;
	for(int i = 0; i < s.size(); i++)
	{
		
		if(s[i] == ')' || s[i] == ']')
		{
			sum = 0;
			t = "";
			while((s[i] == ')' && sk.top() == '(') || (s[i] == ']' && sk.top() == '['))
			{
				sum++;
				sk.pop();
				t += s[i];
				s.erase(i, 1);
				i--;
				t += s[i];
				s.erase(i, 1);
			}
			if(sum > maxx) maxx = sum, r = t;
		}
		else sk.push(s[i]);
	}
	for(int i = r.size(); i >= 0; i--) if(r[i] == '(' || r[i] == '[') cout << r[i];
	for(int i = 0; i < r.size(); i++) if(r[i] == ')' || r[i] == ']') cout << r[i];
	return 0;
}
2023/12/16 13:23
加载中...