समस्या विवरण
मान लीजिए हमारे पास एक स्ट्रिंग s है। हमें स्ट्रिंग में सेगमेंट की संख्या गिननी है, जहां एक सेगमेंट को वर्णों के सन्निकट अनुक्रम (कोई व्हाइटस्पेस नहीं) के रूप में परिभाषित किया गया है।
उदाहरण
यदि इनपुट है: "Hello, I love programming", तो आउटपुट होगा 4, क्योंकि 4 सेगमेंट हैं।
हल करने का दृष्टिकोण
इस समस्या को हल करने के लिए निम्नलिखित चरणों का पालन करें:
- n := 0
- i := 0 से आरंभ करें, जब i < s का आकार, i को 1 से बढ़ाते हुए:
- यदि s[i] व्हाइटस्पेस के बराबर नहीं है:
- n को 1 से बढ़ाएं
- जब (i < s का आकार और s[i] व्हाइटस्पेस के बराबर नहीं है):
- i को 1 से बढ़ाएं
- यदि s[i] व्हाइटस्पेस के बराबर नहीं है:
- n लौटाएं
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int countSegments(string s) {
int n = 0;
for(int i = 0; i < s.size(); i++) {
if(s[i] != ' ')
n++;
while( i < s.size() && s[i] != ' ')
i++;
}
return n;
}
};
int main() {
Solution ob;
cout << (ob.countSegments("Hello, I love programming"));
return 0;
}
इनपुट
"Hello, I love programming"
आउटपुट
4