分析:叠代法。采用叠代算法的具體過程。
假設原始集合s = <a, b, c, d>,子集結果為r:
第壹次叠代:
r = <a>
第二次叠代:
r = <a, ab, b>
第三次叠代:
r = <a, ab, b, ac, abc, bc, c>
第四次叠代:
r = <a, ab, b, ac, abc, bc, c, ad, abd, bd, acd, abcd, bcd, cd, d>
從上述可知,每次叠代,都是上壹次叠代的結果+上次叠代結果中每個元素都加上當前叠代的元素+當前叠代的元素。
code:
def getSubset(str):
if str is None or len(str) < 1:
print("參數不合法")
return
arr = []
arr.append(str[0])
i = 1
while i < len(str):
lens = len(arr)
j = 0
while j < lens:
arr.append(arr[j] + str[i])
j += 1
arr.append(str[i])
i += 1
return arr
if __name__ == "__main__":
result = getSubset("abc")
i = 0
while i < len(result):
print(result[i])
i += 1