function isInDict(word, dict) {
return dict.includes(word);
}
function wordBreak(str, result, dict) {
const strsize = str.length;
for (let i = 1; i <= strsize; i++) {
const subStr = str.substring(0, i);
if (isInDict(subStr, dict)) {
if (i === strsize) {
console.log(result + subStr);
return;
}
wordBreak(str.substring(i), result + subStr + " ", dict);
}
}
}
const str = "butterflyplaybasketballwithbags";
const dict = [
"butterfly", "basketball", "bagpiper", "and", "play",
"with", "butter", "fly", "basket", "ball", "bags"
];
wordBreak(str, "", dict);
/*
run:
butter fly play basket ball with bags
butter fly play basketball with bags
butterfly play basket ball with bags
butterfly play basketball with bags
*/