原题地址
这道题卡了我一定时间,大致题意就是让我们补“(“ ,”)”
大概思路就是直接找“(”的个数,和“)”的个数就行
附上代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <iomanip>
//#include <string.h>
#include <bits/stdc++.h>
#define INF 999999999
using namespace std;
#define ll long long
#define boost ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
bool vis[100000]={0};
int main()
{
boost;
int n;
cin >>n;
string s,w;
cin >>s;
int sum=0,num=0;
for(int i=0;i<n;i++){
if(s[i]=='('){
sum++;
}
else {
if(sum>0) sum--;
else num++;
}
}
for(int i=0;i<num;i++)
cout<<"(";
cout<<s;
for(int i=0;i<sum;i++)
cout<<")";
cout<<endl;
return 0;
}
本文分享了一种解决括号匹配问题的算法思路与代码实现。通过计算左括号'('与右括号')'的数量,确保字符串中括号的正确配对。文章附带的C++代码演示了如何在输入字符串前添加左括号并在其后添加右括号,以达到括号完全匹配的效果。
854

被折叠的 条评论
为什么被折叠?



