Skip to content

Instantly share code, notes, and snippets.

@cAstraea
Created February 6, 2017 12:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cAstraea/5357ba8f10f1b1b93d341a679c072929 to your computer and use it in GitHub Desktop.
Save cAstraea/5357ba8f10f1b1b93d341a679c072929 to your computer and use it in GitHub Desktop.
break string into substring reccursive solution
function breakWord(stringToBreak, dictionary) {
if(dictionary.has(stringToBreak)) return stringToBreak;
var length = stringToBreak.length;
for (var i=1; i < length; i++) {
var prefix = stringToBreak.substring(0, i);
if(dictionary.has(prefix)) {
var sufix = stringToBreak.substring(i, length);
var segSufix = breakWord(sufix, dictionary);
if(segSufix != null) {
return prefix + ' ' + segSufix;
}
}
}
return null;
}
var mySet = new Set();
mySet.add("This");
mySet.add("is");
mySet.add("break");
mySet.add("through");
mySet.add("huge");
mySet.add("breakthrough");
var inputString = "hugebreakthrough";
var result = breakWord(inputString, mySet);
console.log(result);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment