我试图获取字符串的每个子集,但却想不出怎么做。如果有人能帮助我那将是伟大的。
>>> string('ab')
a, b
>>> string('abc')
a, b, c, ab, ac, bc,
>>> string('abcd')
a, b, c, d, ab, bc, cd, da, abc, bcd, cda, dab,
这些都必须在列表中,字符串中可能有n个字符。程序应该返回所有可以形成的字符串子集。
答案 0 :(得分:1)
您可以使用itertools.combinations并列出这样的列表理解
from itertools import combinations
def myStrings(s):
return ["".join(item) for i in range(1,len(s)) for item in combinations(s,i)]
print myStrings('ab')
print myStrings('abc')
print myStrings('abcd')
<强>输出强>
['a', 'b']
['a', 'b', 'c', 'ab', 'ac', 'bc']
['a', 'b', 'c', 'd', 'ab', 'ac', 'ad', 'bc', 'bd', 'cd', 'abc', 'abd', 'acd', 'bcd']
答案 1 :(得分:0)
返回javascript中字符串的子集
function getSubset(str) {
let subSet = [];
let i, j, len = str.length;
for(i=0; i<len; i++) {
for(j=i+1; j<=len; j++) {
subSet.push(str.slice(i, j))
}
}
return subSet;
}
console.log(getSubset('CAT'))
console.log(getSubset('GOD'))