मान लीजिए हमारे पास लंबाई n की एक स्ट्रिंग है। इसमें केवल अपरकेस अक्षर हैं। हमें उन सबस्ट्रिंग की संख्या ढूंढनी है जिनके अक्षर वर्णमाला क्रम में आ रहे हैं। सबस्ट्रिंग का न्यूनतम आकार 2 होगा। तो यदि स्ट्रिंग है: "REFJHLMNBV", और सबस्ट्रिंग काउंट 2 है, वे "EF" और "MN" हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- जांचें कि क्या str[i] + 1, str[i+1] के समान है, यदि हां, तो परिणाम को 1 से बढ़ाएं, और स्ट्रिंग को तब तक इटरेट करें जब तक अगला अक्षर वर्णमाला क्रम से बाहर न हो जाए, अन्यथा जारी रखें।
उदाहरण
#includeusing 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