JS + math:计算子字符串的排列或组合

JS + math: calculate permutation or combination of substrings

本文关键字:排列 组合 字符串 math 计算 JS      更新时间:2023-09-26

我不确定是否"组合"是正确的词,但我想扫描字符串,以获得所有可能的子字符串,如交货。

var str = "abcd";
// do something here, a for loop i guess...
WANTED OUTPUT:
a
ab
abc
abcd
b
bc
bcd
c
cd
d

我对dcba这样的结果不感兴趣,因此我不是在寻找排列…用什么函数来做呢?

谢谢! !

这很简单,你也可以自己做:

var str = "abcd";
var substrings = [];
for (var i = 0; i < str.length; i++){ 
     for (var j = i + 1; j <= str.length; j++)
     substrings.push(str.substring(i, j));
}

要获得所有可能的子字符串(您是对的,它不是"permutations"),您可以使用两个嵌套循环来开始和结束索引:

var str = "abcd";
var substrings = [],
    len = str.length;
for (var i=0; i<len; i++)
    for (var j=i+1; j<=len; j++)
        substrings.push(str.slice(i, j));
substrings;
// ["a", "ab", "abc", "abcd", "b", "bc", "bcd", "c", "cd", "d"]

如果您想获得空子字符串,只需将其添加到substrings的初始化。