From 4ac1dc454f1176e77daa6e8f3768434e2a4a7393 Mon Sep 17 00:00:00 2001 From: BangDori Date: Wed, 1 Jan 2025 19:37:55 +0900 Subject: [PATCH] [Leetcode - Easy] Number of Different Integers in a String --- ...umber of Different Integers in a String.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 bangdori/Number of Different Integers in a String.js 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"; +}