32分求调
查看原帖
32分求调
1179906
hhy8399楼主2024/7/4 21:26
#include<bits/stdc++.h>
using namespace std;

bool pd[10000001];
string s;

int main() {
	cin >> s;
	for (int i = 0; i <= s.size() - 1; i++) {
		if (s[i] == ')') {
			for (int j = i - 1; j >= 0; j--) {
				if (s[j] == '[') {
					break;
				}
				if (s[j] == '(' && !pd[j]) {
					pd[i] = 1;
					pd[j] = 1;
					break;
				}
			}
		}
		if (s[i] == ']') {
			for (int j = i - 1; j >= 0; j--) {
				if (s[j] == ')') {
					break;
				}
				if (s[j] == '[' && !pd[j]) {
					pd[i] = 1;
					pd[j] = 1;
					break;
				}
			}
		}
		for (int i = 0; i <= s.size() - 1; i++) {
			if (!pd[i]) {
				if (s[i] == '(' || s[i] == ')') {
					cout << "()";
				} else if (s[i] == '[' || s[i] == ']') {
					cout << "[]";
				}
			}
			else cout << s[i];
		}
	}
	return 0;
}
2024/7/4 21:26
加载中...