题目传送门

c++代码

#include <bits/stdc++.h>

using namespace std;
const int N = 100010;
//用数组模拟栈
char stk[N], tt; //内容是第几个
//原字符串
string s;

int b[N];

int main() {
    cin >> s;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] == '(' || s[i] == '[') stk[++tt] = i;
        else {
            if (s[i] == ')' && s[stk[tt]] == '(') b[i] = b[stk[tt]] = 1,tt--;
            else if (s[i] == ']' && s[stk[tt]] == '[') b[i] = b[stk[tt]] = 1,tt--;
        }
    }
    //输出
    for (int i = 0; i < s.size(); i++) {
        if (b[i]) cout << s[i];
        else if (s[i] == '(' || s[i] == ')') cout << "()";
        else if (s[i] == '[' || s[i] == ']') cout << "[]";
    }
    return 0;
}

相关文章:

  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
  • 2022-12-23
  • 2021-05-20
  • 2021-06-15
猜你喜欢
  • 2022-01-30
  • 2022-01-16
  • 2022-01-02
  • 2021-12-16
相关资源
相似解决方案