Find Word Count
JavaScript
//Write a function that counts the specified case sensetive word in a given string and handles cases where there are extra letters between the letters in the word to count.
//Note the letters in the word still have to appear in the correct order and rearrangement of order of letters is not allowed.
//Below are a set of examples word and string combinations with expected count to better understand the question.
// WORD - STRING -> COUNT
//"HELLO" - "AHBECLDLEOF" -> 1
//"HELLO" - "HHELLLLOO" -> 1
//"HELLO" - "HELLOHELLO" -> 2
//"HELLO" - "AHBECLDLEOFAHBECLDLEOF" -> 2
function countWord(wordToFind, stringToScan) {
if (wordToFind.length === 0) {
return 0;
}
var wordCount = 0;
var wordIndex = 0;
var scanIndex = -1;
var tooLongToBeFound = function() {
var letterCountToFind = wordToFind.length - wordIndex;
var letterCountToScan = stringToScan.length - scanIndex;
return letterCountToFind > letterCountToScan;
}
while (++scanIndex < stringToScan.length && !tooLongToBeFound()) {
if (wordToFind.charAt(wordIndex) === stringToScan.charAt(scanIndex)) {
wordIndex++;
}
if (wordIndex === wordToFind.length) {
wordCount++;
wordIndex = 0;
}
}
return wordCount;
}