From 8ed032ff4997c3eccfc7d2713edd63ed9f881f2f Mon Sep 17 00:00:00 2001 From: Sumit-Rajak99 Date: Tue, 7 Oct 2025 22:09:25 +0530 Subject: [PATCH] substring --- dash.cpp | 38 ++++++++++++++++++++++++++++++++++++++ subbstring.cpp | 30 ++++++++++++++++++++++++++++++ water.cpp | 27 +++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 dash.cpp create mode 100644 subbstring.cpp create mode 100644 water.cpp diff --git a/dash.cpp b/dash.cpp new file mode 100644 index 0000000..81e69c9 --- /dev/null +++ b/dash.cpp @@ -0,0 +1,38 @@ +#include +using namespace std; + +int main() { + string s = "5F3Z-2e-9-w"; + int k = 4; + + string temp = ""; + + + for (char c : s) { + if (c != '-') { + temp += toupper(c); + } + } + + + string result = ""; + int count = 0; + + for (int i = temp.size() - 1; i >= 0; i--) { + result.push_back(temp[i]); + count++; + + if (count == k && i != 0) { + result.push_back('-'); + count = 0; + } + } + + + reverse(result.begin(), result.end()); + + + cout << result << endl; + + return 0; +} diff --git a/subbstring.cpp b/subbstring.cpp new file mode 100644 index 0000000..27ba545 --- /dev/null +++ b/subbstring.cpp @@ -0,0 +1,30 @@ +#include +#include +using namespace std; + +class Solution { +public: + int countBinarySubstrings(string s) { + vector groups; + int count = 1; + + // Step 1: Count consecutive groups + for (int i = 1; i < s.size(); i++) { + if (s[i] != s[i - 1]) { + groups.push_back(count); + count = 1; + } else { + count++; + } + } + groups.push_back(count); + + // Step 2: Count valid substrings + int result = 0; + for (int i = 1; i < groups.size(); i++) { + result += min(groups[i - 1], groups[i]); + } + + return result; + } +}; diff --git a/water.cpp b/water.cpp new file mode 100644 index 0000000..e827395 --- /dev/null +++ b/water.cpp @@ -0,0 +1,27 @@ +#include +using namespace std; + +int main() { + vector height = {1,8,6,2,5,4,8,3,7}; + + int maxWater = 0; + int left = 0; + int right = height.size() - 1; + + while (left < right) { + int h = min(height[left], height[right]); + int w = right - left; + int area = h * w; + maxWater = max(maxWater, area); + + if (height[left] < height[right]) { + left++; + } else { + right--; + } + } + + cout << "Maximum Water: " << maxWater << endl; + + return 0; +}