样例都过 0分求调
查看原帖
样例都过 0分求调
681558
Weizhuo_Zhao楼主2024/5/16 22:13
#include <bits/stdc++.h>
using namespace std;
string s, s1 = "", ans = "";

char a[1000001] = {};
int top = 0;

int main() {
	cin >> s;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] == '(' || s[i] == '[') {
			top++;
			a[top] = s[i];
		} else if (s[i] == ')' || s[i] == ']') {
			if (s[i] == ')') {
				if (a[top] == '(') {
					top--;
					s1 += ')';
				} else {
					if (s1.size() > ans.size()) {
						ans = s1;
						s1 = "";
					}
				}
			} else if (s[i] == ']') {
				if (a[top] == '[') {
					top--;
					s1 += ']';
				} else {
					if (s1.size() > ans.size()) {
						ans = s1;
						s1 = "";
					}
				}
			}
		}
	}
	if (ans == "")
		ans = s1;
	for (int i = ans.size(); i >= 0; i--) {
//		cout << ans[i];
		if (ans[i] == ')')
			cout << '(';
		else if (ans[i] == ']')
			cout << '[';
	}
	cout << ans;
	return 0;
}
2024/5/16 22:13
加载中...