拿这个“str”“ABCDE”来说,它有以下"AB", "ABC", "ABCD","ABCDE","DE", "CDE", "BCDE", "CD","BC"关于顺序的组合。我试过// thi is javascript code const val = 'ABCDE' let array = [] for (i = 0; i < val.length-1; i++) { array.push(val.slice(i,val.length)) array.push(val.slice(0,i+2)) array.push(val.slice(i,val.length-i)) } console.log( array, array.includes('BC'), array.includes('CD') )// this is the reuslts: ["ABCDE", "AB", "ABCDE", "BCDE", "ABC", "BCD", "CDE", "ABCD", "C", "DE", "ABCDE", ""]//this reslutes don't have compnations like 'BC' or 'CD'我没有真正得到我需要的结果。您对 javascript 或 python 有什么想法吗?我认为 pythonpanda或可能NumPy库有这样的东西。
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
您需要两个子字符串嵌套循环。
function getAllSubstrings(str) {
const result = [];
for (let i = 0; i < str.length - 1; i++) {
for (let j = i + 2; j < str.length + 1; j++) {
result.push(str.slice(i, j));
}
}
return result;
}
console.log(getAllSubstrings('ABCDE'));
.as-console-wrapper { max-height: 100% !important; top: 0; }
慕哥6287543
TA贡献1831条经验 获得超10个赞
在Python中一切都很简单。
from itertools import combinations
val = 'ABCDE'
print([''.join(l) for i in range(len(x)) for l in combinations(x, i+1)])
添加回答
举报
0/150
提交
取消