当前位置: 首页 > news >正文

上海市计算机学会竞赛平台2022年7月月赛丙组匹配括号(三)

题目描述

如果字符序列仅由 ( 与 ) 构成,则在满足以下条件时,它是匹配的:

  • 空序列是匹配的;
  • 如果括号序列 s 是匹配的,那么 (s) 也是匹配的;
  • 如果括号序列 s 与 t 是匹配的,那么 st 也是匹配的。

给定一个整数 nn,请输出 nn 个左括号与 nn 个右括号可以组成的所有匹配括号序列,并且按照字典序将它们输出(如果超过 10001000 种,则仅输出前 10001000 种。)

输入格式

单个整数:表示 nn

输出格式

若干行:每行表示一种由 nn 对括号组成的匹配括号序列,按照字典序排列,如果超过 10001000 种,则仅输出前 10001000 种序列。

数据范围
  • 1≤n≤501≤n≤50
样例数据

输入:

2

输出:

(())
()()

输入:

3

输出:

((()))
(()())
(())()
()(())
()()()

详见代码:

#include <bits/stdc++.h>
using namespace std;
int n;
char c[105];
int cnt=0;
void dfs(int step, int k) 
{if (cnt>=1000) return;if (step > 2 * n){ for(int i = 1; i <= n * 2; i++) {cout<<c[i];}cout << endl;cnt++;return;}if (k + 1 <= 2 * n - step) {c[step] = '(';dfs(step + 1, k + 1);}if (k > 0) { c[step] = ')'; dfs(step + 1, k - 1); }return;
}
int main() 
{cin >> n;dfs(1, 0);return 0;
}

http://www.lryc.cn/news/497666.html

相关文章:

  • 108.【C语言】数据结构之二叉树查找值为x的节点
  • Java学习笔记(10)--面向对象基础
  • 社群分享在商业引流与职业转型中的作用:开源 AI 智能名片 2+1 链动模式小程序的应用契机
  • nodejs官方文档学习-笔记-1
  • android视频播放器之DKVideoPlayer
  • Linux——基础命令(3)
  • MySQL备份恢复
  • 鲲鹏麒麟安装离线版MySQL5.7
  • 【不稳定的BUG】__scrt_is_managed_app()中断
  • MyBatis 详解
  • Cursor+Devbox AI开发快速入门
  • 编写按层次顺序(同一层自左至右)遍历二叉树的算法。或:按层次输出二叉树中所有结点;
  • docker 安装mysql8.0.29
  • vue深入理解输入框字符限制的优化设计
  • 完整指南:在Ubuntu 20.04 ROS 1环境中配置和使用Orbbec SDK
  • 【Leetcode Top 100】138. 随机链表的复制
  • 2024年12月HarmonyOS应用开发者基础认证全新题库
  • Flink问题总结
  • Day17 C++ vector 容器
  • 常见Linux命令(详解)
  • AgGrid 组件封装设计笔记:自定义 icon 以及每个 icon 的点击事件处理
  • vb.net常用命名空间
  • Netty面试内容整理-Netty 工作原理
  • CMD 介绍
  • 【项目日记】仿mudou的高并发服务器 --- 实现HTTP服务器
  • Android 使用TabLayout + ViewPager2 实现标签页的视图切换
  • vue 项目实现阻止浏览器记住密码
  • 7. 一分钟读懂“单例模式”
  • 28个炫酷的纯CSS特效动画示例(含源代码)
  • 百问FB网络编程 - 主要函数介绍