题目:求出字符串“abcd...”的所有非空子集
内容:我们都学习过离散数学,(A,B,C)的非空子集包含[(A), (B), (C), (A,B), (A,C), (B,C), (A,B,C)]。可是对于不定长集合的非空子集,要全部列出来,我们用程序该怎么实现呢?
提示:我相信,大家有很多思路去解决这个问题,但最优解是什么呢?
例如,可以用完全树来解决这个问题。而我的思路是通过二进制思想,比如,对于长度为3的字符串,它的非空子集有2^3-1个,用二进制表达如下:
001 --> 1 --> c
010 --> 2 --> b
011 --> 3 --> bc
100 --> 4 --> a
101 --> 5 --> a c
110 --> 6 --> ab
111 --> 7 --> abc
大家不妨也发挥你的聪明才智,创造出更优的解决方案。
———条条大路通罗马,不要被别人的思想所局限