समस्या विवरण
हमें एक स्ट्रिंग str और एक संख्या n दी गई है। लक्ष्य str के उन सभी उपस्ट्रिंग्स को खोजना है जिनकी लंबाई n है।
उदाहरण
इनपुट: str = "computer", n = 4
आउटपुट: 5
व्याख्या: उपस्ट्रिंग्स: "comp", "ompu", "mput", "pute", "uter"
इनपुट: str = "development", n = 5
आउटपुट: 7
व्याख्या: उपस्ट्रिंग्स: "devel", "evelo", "velop", "elopm", "lopme", "opmen", "pment"
दृष्टिकोण
यदि स्ट्रिंग की लंबाई L है, तो लंबाई n के उपस्ट्रिंग्स की संख्या L - n + 1 होती है। यह एक सरल गणितीय सूत्र है।
एल्गोरिदम
- स्ट्रिंग
strऔर पूर्णांकnलें - फंक्शन
possible_substring(str, length, n):count = length - n + 1countलौटाएँ
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
int possible_substring(string str, int length, int n) {
if (n > length) return 0;
return length - n + 1;
}
int main() {
string str = "learning";
int length = str.length();
int n = 2;
cout << "Count: " << possible_substring(str, length, n);
return 0;
}
आउटपुट
Count: 7