diff --git a/bangdori/Number of Different Integers in a String.js b/bangdori/Number of Different Integers in a String.js new file mode 100644 index 0000000..ea14361 --- /dev/null +++ b/bangdori/Number of Different Integers in a String.js @@ -0,0 +1,42 @@ +const UNSPECIFIED = -1; + +/** + * @param {string} word + * @return {number} + */ +var numDifferentIntegers = function (word) { + let prevNumberPos = UNSPECIFIED; + const numberGroups = new Set(); + + for (let i = 0; i < word.length; i++) { + if ( + isNumber(word[i]) && + prevNumberPos !== UNSPECIFIED && + word[prevNumberPos] !== "0" + ) { + continue; + } + + if (isNumber(word[i])) { + prevNumberPos = i; + continue; + } + + if (prevNumberPos === UNSPECIFIED) { + continue; + } + + numberGroups.add(word.substring(prevNumberPos, i)); + prevNumberPos = UNSPECIFIED; + } + + if (prevNumberPos !== UNSPECIFIED) { + numberGroups.add(word.substring(prevNumberPos, word.length)); + } + + return numberGroups.size; +}; + +function isNumber(character) { + return character >= "0" && character <= "9"; +}