如何从数组的元素中获取不同的组合?

拿这个“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库有这样的东西。


慕姐8265434
浏览 67回答 2
2回答

繁星coding

您需要两个子字符串嵌套循环。function getAllSubstrings(str) {&nbsp; &nbsp; const result = [];&nbsp; &nbsp; for (let i = 0; i < str.length - 1; i++) {&nbsp; &nbsp; &nbsp; &nbsp; for (let j = i + 2; j < str.length + 1; j++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.push(str.slice(i, j));&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; return result;}console.log(getAllSubstrings('ABCDE'));.as-console-wrapper { max-height: 100% !important; top: 0; }

慕哥6287543

在Python中一切都很简单。from itertools import combinationsval = 'ABCDE'print([''.join(l) for i in range(len(x)) for l in combinations(x, i+1)])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript