मान लीजिए कि हमारे पास लंबाई n की एक स्ट्रिंग है। इसमें केवल बड़े अक्षर होते हैं। हमें उन सबस्ट्रिंग्स की संख्या ज्ञात करनी है जिनका वर्ण वर्णानुक्रम में घटित हो रहा है। सबस्ट्रिंग का न्यूनतम आकार 2 होगा। इसलिए यदि स्ट्रिंग इस तरह है:"REFJHLMNBV", और सबस्ट्रिंग गिनती 2 है, तो वे "EF" और "MN" हैं।
तो इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- जांचें कि क्या str[i] + 1 str[i+1] के समान है, यदि ऐसा है, तो परिणाम को 1 से बढ़ाएं, और अगले वर्ण तक स्ट्रिंग को पुनरावृत्त करें जो वर्णानुक्रम से बाहर है, अन्यथा जारी रखें।ली>
उदाहरण
#include<iostream>
using namespace std;
int countSubstr(string main_str) {
int res = 0;
int n = main_str.size();
for (int i = 0; i < n - 1; i++) {
if (main_str[i] + 1 == main_str[i + 1]) {
res++;
while (main_str[i] + 1 == main_str[i + 1]) {
i++;
}
}
}
return res;
}
int main() {
string str = "REFJHLMNBV";
cout << "Number of substrings: " << countSubstr(str);
} आउटपुट
Number of substrings: 2