1888: 生成括号(等级考试3级 2021-09 T5)
题目:
程序:
#include<bits/stdc++.h> using namespace std; int n; string s1; void dfs(int l,int r) { if(l==n&&r==n) { cout<<s1; cout<<endl; return; } if(l<r) return;//当l<r时停止此次递归 if(l<=n)//一定先做l的判断 { s1+="("; dfs(l+1,r); s1.pop_back();//回溯 } if(r<=n) { s1+=")"; dfs(l,r+1); s1.pop_back();//回溯 } } int main() { cin>>n; dfs(0,0); return 0; }