要按照字典序输出,你的代码3的时候是错的。 #include <iostream> #include <vector> #include <map> #include <cstring> #include <string> #include <algorithm> using namespace std; char ss[10000005]; int pos = 0; bool fg = true; void dfs(int pos, int l, int r, int flag) { if (r < l) return ; if (l == 0 && r == 0) { ss[pos] = '\0'; if (fg == true) { fg = false; printf("%s", ss); return ; } printf(",%s", ss); return ; } if (flag == 0) { for (int i = l; i > 0; --i) { for (int j = 0; j < i; ++j) { ss[pos + j] = '('; } dfs(pos + i, l - i, r, flag ^ 1); } } else { for (int i = 1; i <= r; ++i) { for (int j = 0; j < i; ++j) { ss[pos + j] = ')'; } dfs(pos + i, l, r - i, flag ^ 1); } } } int main() { ios::sync_with_stdio(false); //freopen("input.txt", "r", stdin); int n; cin >> n; dfs(0, n, n, 0); puts(""); return 0; }
点赞 评论

相关推荐

04-12 13:42
江南大学 C++
点赞 评论 收藏
分享
能干的三文鱼刷了100道题:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务