博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串的组合
阅读量:6951 次
发布时间:2019-06-27

本文共 476 字,大约阅读时间需要 1 分钟。

要求:输入一个字符串,输出该字符串的所有组合。如:若字符串为:abc,则应输出:(空集),a、b、c、ab、ac、bc、abc.

思路:考虑到数学中的排列组合知识,我们知道所谓组合即是在字符串中选取某些字符组合在一起,而在二进制中我们可以用0代表未选取某字符,1代表选取了某字符,这样自然可以想到用位运算来实现该过程。位运算结果为1则代表该位被选取。如000代表空集,001代表选取最后一个字符,即c,100代表a。依次类推。
注:注意全排列与组合的不同,具体请参看我的博客:
基于上述思路,代码如下:
#include
using namespace std;char str[] = "abcde";void print_subset(int n , int index){ printf("{"); for(int i = 0 ; i < n ; ++i) { if( index&(1<
程序运行结果如下:

转载于:https://www.cnblogs.com/hainange/p/6334067.html

你可能感兴趣的文章
关于canvas createRadialGradient
查看>>
在go中使用linked channels进行数据广播
查看>>
关于克隆gitlab项目的一些 问题列表
查看>>
C/C++ 平衡二叉树笔记(AVL树)
查看>>
HDU动态规划部分题目统计
查看>>
C_求质数
查看>>
Python time & random模块
查看>>
java JMF 多媒体
查看>>
Python核心编程(第二版)PDF
查看>>
golang 性能测试pprof
查看>>
ubuntu开机只有一条横杠在闪的解决办法
查看>>
分享幻灯片+在线阅读
查看>>
塔式、机架式、刀片式服务器的区别和特点
查看>>
25、Base64
查看>>
如何用 Canvas绘制图形
查看>>
Dynamics CRM 系统自定义部分的语言翻译
查看>>
Makefile学习与进阶之Makefile.am和$$(M)的意思
查看>>
Codeforces Round #382 (Div. 2)
查看>>
日历控件--My97DatePicker的使用
查看>>
k8s运行容器之Job(四)--技术流ken
查看>>