hushicai / hushicai.github.io

Blog
https://hushicai.github.io
27 stars 1 forks source link

字符串全组合 #89

Open hushicai opened 4 years ago

hushicai commented 4 years ago

已知字符串里的字符是互不相同的,现在任意组合,比如ab,则输出aa,ab,ba,bb,编程按照字典序输出所有的组合。

function perm(source, result = [], pos = 0) {
    let size = source.length;

    if (size === pos) {
        console.log(result.join(''));
        return;
    }

    for (let i = 0; i < size; i++) {
        result[pos] = source[i];
        perm(source, result, pos + 1)
    }
}

let input = 'ab';

perm(input.split(''));

按照深度优先来递归就可以了:

image