mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-26 21:54:13 +01:00
32 lines
744 B
JavaScript
32 lines
744 B
JavaScript
|
|
|
|
|
|
/**
|
|
* Get all possible combinations of substrings that add up to the given string
|
|
* https://stackoverflow.com/questions/30169587/find-all-the-combination-of-substrings-that-add-up-to-the-given-string
|
|
* @param {string} input
|
|
* @return {string[][]}
|
|
*/
|
|
export const allSubstrings = (input) => {
|
|
|
|
if( input.length === 1) return [[input]];
|
|
|
|
/** @type {string[][]} */
|
|
let result = [];
|
|
|
|
const start = input.substring(1);
|
|
const suba = allSubstrings(start);
|
|
|
|
suba.forEach(function(subresult) {
|
|
let tmp = subresult.slice(0);
|
|
tmp[0] = input.charAt(0) + tmp[0];
|
|
result.push(tmp);
|
|
|
|
tmp = subresult.slice(0);
|
|
tmp.unshift(input.charAt(0));
|
|
result.push(tmp);
|
|
});
|
|
|
|
return result;
|
|
}
|