用最快的速度求子集合列表

题目:求出字符串“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

大家不妨也发挥你的聪明才智,创造出更优的解决方案。

                                                           ———条条大路通罗马,不要被别人的思想所局限

 
原文地址:https://www.cnblogs.com/cheng2839/p/12589364.html