From 05d737394993b5a2465d47d3796d6505c5c19533 Mon Sep 17 00:00:00 2001 From: aadil42 <77232799+aadil42@users.noreply.github.com> Date: Tue, 11 Mar 2025 15:21:56 +0530 Subject: [PATCH] Create 1358-number-of-substrings-containing-all-three-characters.js Solved number-of-substrings-containing-all-three-characters --- ...strings-containing-all-three-characters.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 javascript/1358-number-of-substrings-containing-all-three-characters.js diff --git a/javascript/1358-number-of-substrings-containing-all-three-characters.js b/javascript/1358-number-of-substrings-containing-all-three-characters.js new file mode 100644 index 000000000..12ccdb657 --- /dev/null +++ b/javascript/1358-number-of-substrings-containing-all-three-characters.js @@ -0,0 +1,35 @@ +/** + * Sliding Window + * Time O(n) | Space O(1) + * https://leetcode.com/problems/number-of-substrings-containing-all-three-characters + * @param {string} s + * @return {number} + */ +var numberOfSubstrings = function(s) { + + let left = 0; + let right = 0; + let aCount = 0; + let bCount = 0; + let cCount = 0; + let total = 0; + + while (right < s.length) { + + if (s[right] === "a") aCount++; + if (s[right] === "b") bCount++; + if (s[right] === "c") cCount++; + + while (aCount && bCount && cCount) { + total += s.length - right; + if (s[left] === "a") aCount--; + if (s[left] === "b") bCount--; + if (s[left] === "c") cCount--; + left++; + } + + right++; + } + + return total; +};