笔试算法之路(C/C++):输出左右“对称”序列

本文介绍了如何解决一个算法问题,即在[1, 9]范围内输入整数n,生成所有前n位和后n位1和0数量相同的2n位二进制序列。举例说明了不同n值下的序列生成,并提供了C/C++的代码实现。" 132573881,19694580,哈夫曼树:数据压缩与编码,"['数据结构', 'Python', '开发语言', '数据压缩']
摘要由CSDN通过智能技术生成

#PS:不明之处,请君留言,以期共同进步!


##1、题目描述
输入区间 [1, 9] 上的一个整数 n,输出满足条件的所有序列及其个数,条件如下:
(1)每个序列都有 2n 位,每位上可填数字 0 或 1;
(2)每个序列的前 n 位和后 n 位包含 1 或 0 的个数相同,即“对称”,但并不要求位置一定对应。
###示例1:
输入:1
输出:
00
11
满足条件的序列个数:2
###示例2:
输入:2
输出:
0000
0101
0110
1001
1010
1111
满足条件的序列个数:6
###示例3:
输入:3
输出:
000000
001001
001010
001100
010001
010010
010100
011011
011101
011110
100001
100010
100100
101011
101101
101110
110011
110101
110110
111111
满足条件的序列个数:20
##2、代码实现

//如果用枚举法实现,那简直是噩梦,而转换成满二叉树的路径问题,
//找出从根节点到叶节点的所有路径,再从中选出符合条件的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值