如何生成二进制字符串的所有可能子集?

我有一个问题,我不知道如何解决。

我有一个二进制字符串,我想生成所有可能的二进制子字符串。

范例:

input : 10111

output: 10000, 10100,00111,00001,10110 ...

我该怎么做,又快又聪明?

回答:

魔术-假设使用位掩码:

subset( int x ) 

list = ()

for ( int i = x; i >= 0; i = ( ( i - 1 ) & x ) )

list.append( i )

return list

您可以使用相同的逻辑,尽管会涉及更多一点,但使用二进制字符串。

以上是 如何生成二进制字符串的所有可能子集? 的全部内容, 来源链接: utcz.com/qa/408380.html

回到顶部