【发布时间】:2020-02-13 04:10:53
【问题描述】:
我正在尝试查找子集并以二进制表示形式输出它们。
示例:
000:EMPTY
001:C
010:B
011:B C
100:A
101:A C
110:A B
111:A B C
我有以下代码可以找到所有子集但不确定二进制文件?
#include <iostream>
using namespace std;
void recsub(string sofar, string rest){
if(rest=="") cout<<sofar<<endl;
else{
recsub(sofar+rest[0], rest.substr(1)); //including first letter
recsub(sofar, rest.substr(1)); //recursion without including first letter.
}
}
void listsub(string str){
recsub("",str);
}
int main(){
listsub("abc");
return 0;
}
【问题讨论】:
-
什么子集?请清楚说明您的问题!
-
只有另一个字符串参数,比如
binary_sofar。对于包含第一个字母的情况,将'1'附加到binary_sofar;如果不包含该字母,请附加'0'。原字符串用完后与sofar一起打印。
标签: c++ c++11 binary set subset