Open mileOfSunshine opened 6 years ago
function main(str, needSize) {
needSize = needSize || str.length
var arr = []
if (needSize === 1) {
return str.split('').sort()
}
var subArr = main(str, needSize - 1)
for (let i = 0; i < str.length; i++) {
for (let j = 0; j < subArr.length; j++) {
arr.push(str[i] + subArr[j])
}
}
return arr.sort()
}
console.log(main('abc'))
会议结束来一发,发现小通已经做出来了
function foo(str) {
var lst = str.split('').sort()
var length = lst.length
var rets = []
var assumble = function (prev, count) {
for (var i = 0; i < length; ++i) {
var temp = [].concat(prev)
if (count > 1) {
assumble([lst[i]].concat(prev), count - 1)
} else {
rets.push([lst[i]].concat(prev).join(""))
}
}
}
assumble([], length)
return rets.sort()
}
console.log(foo('cba'))
已知字符串里的字符是互不相同的,现在任意组合,比如ab,则输出aa,ab,ba,bb,编程按照字典序输出所有的组合。注意啦,输出每组的字符长度与输入字符长度一致,比如输入abc长度为3,那么输出长度也为3。
例子:
输入 abc 输出结果 aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc