मान लीजिए कि हमारे पास लंबाई 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