蓝桥——括号合法组合 2020-11-26

简介: 蓝桥——括号合法组合 2020-11-26

【编程实现】(给原题做了一番改动,感觉这样更有意思。)

循环以及循环的嵌套,是同学们编写程序时常见的操作。如果用一对括号来代表一个循环的话,那么三个循环出现的合法组合有5种,分别为:“{}{}{} ”、“{{{}}}”、“{{}{}}”、“{{}}{}”、“{}{{}}”。

输入:一个数字n(1<=n<=10),代表循环的个数。

输出:输出n个循环的合法组及组合个数。

【评判标准】

3分:能正确输出一组数据;

5分:能正确输出两组数据;

7分:能正确输出三组数据;

9分:能正确输出四组数据;

11分:能正确输出五组数据。

样例输入1:

2

样例输出1:

{}{}

{{}}

2

样例输入2:

3

样例输出2:

{}{}{}

{{}}{}

{}{{}}

{{}{}}

{{{}}}

5

1. #include <stdio.h>
2. #include <iostream>
3. using namespace std;
4. int n,lf,rt,s,tj,tmp;
5. int aa[65]; 
6. int main(int argc, char *argv[])
7. {
8.  scanf("%d",&n);
9.  int m=1,t=1,a=0,b=0;
10.   tj=0;
11.   for(int i=1;i<=2*n;i++){
12.     if(i%2==0)a+=t;
13.     if(i>n)b+=t;
14.     t*=2; 
15.   }
16. //  cout<<a<<" "<<b<<endl;
17.   for(int j=a;j<=b;j++){
18.     t=j;
19.     lf=rt=0;s=1;
20.     memset(aa,0,sizeof(aa));
21.     while(t>0){
22.       if(t&1){lf++;aa[s]=1;}
23.       else {rt++;aa[s]=0;}
24.       if(lf>rt)break;
25.       s++;  
26.       t=t>>1;
27.     }
28.     if(aa[1]==0&&lf==rt&&lf==n){
29.       tj++;
30.       for(int i=1;i<s;i++){
31.         if(aa[i]==0) printf("{");
32.         else printf("}");
33.       }
34.       printf("\n");
35.     }
36.   }
37.   printf("%d\n",tj);
38.   return 0;
39. }

 

相关文章
|
1月前
|
存储 算法 Java
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
前缀(波兰)表达式、中缀表达式和后缀(逆波兰)表达式的基本概念、计算机求值方法,以及如何将中缀表达式转换为后缀表达式,并提供了相应的Java代码实现和测试结果。
60 0
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
|
1月前
|
算法
条件运算符与条件if的姻缘,打擂台算法和大小写字母转换,if逻辑避坑
条件运算符与条件if的姻缘,打擂台算法和大小写字母转换,if逻辑避坑
27 1
|
5月前
|
算法 Java
力扣经典150题第二十三题:找出字符串中第一个匹配项的下标
力扣经典150题第二十三题:找出字符串中第一个匹配项的下标
29 0
|
6月前
leetcode代码记录(第一个出现两次的字母
leetcode代码记录(第一个出现两次的字母
37 2
|
6月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
77 0
|
6月前
|
编译器 C++
【C++14保姆级教程】数位分割符、函数返回值推导
【C++14保姆级教程】数位分割符、函数返回值推导
100 0
|
11月前
|
C语言
C语言第二十八弹--输入一个非负整数,返回组成它的数字之和
C语言第二十八弹--输入一个非负整数,返回组成它的数字之和
|
算法 索引
代码随想录算法训练营第九天 | LeetCode 8. 找出字符串中第一个匹配项的下标、LeetCode 459. 重复的子字符串
代码随想录算法训练营第九天 | LeetCode 8. 找出字符串中第一个匹配项的下标、LeetCode 459. 重复的子字符串
37 0
|
算法 搜索推荐 程序员
C语言第十六练——数字组合匹配
C语言第十六练——数字组合匹配
125 0
Leecode 1111. 有效括号的嵌套深度
Leecode 1111. 有效括号的嵌套深度
50 0