हमें एक स्ट्रिंग दी गई है, मान लीजिए str और कार्य स्ट्रिंग str में उन वर्णों की संख्या की गणना करना है जिनके समान पड़ोसी हैं और इसमें स्ट्रिंग में एक वर्ण के बाएं और दाएं दोनों तरफ शामिल होंगे। साथ ही, इस परिदृश्य में स्ट्रिंग में पहला और अंतिम वर्ण हमेशा माना जाएगा क्योंकि उनके पास केवल एक आसन्न वर्ण होता है।
उदाहरण के लिए
इनपुट - string str = "poiot" आउटपुट - गिनती 3 है
व्याख्या - दी गई स्ट्रिंग में वर्ण p, t और i के समान पड़ोसी हैं इसलिए गिनती 3 तक बढ़ जाएगी।
इनपुट - string str = "nitihig" आउटपुट - गिनती 4 है
व्याख्या - दी गई स्ट्रिंग में वर्ण n, t, h और g के समान पड़ोसी हैं इसलिए गिनती 4 तक बढ़ जाएगी।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
स्ट्रिंग को एक चर में इनपुट करें, मान लीजिए str
length() फंक्शन का उपयोग करके स्ट्रिंग str की लंबाई की गणना करें जो स्ट्रिंग में स्पेस सहित अक्षरों की संख्या के अनुसार एक पूर्णांक मान लौटाएगा।
यदि स्ट्रिंग की लंबाई 2 से कम या बराबर है तो स्ट्रिंग की लंबाई के रूप में गिनती लौटाएं क्योंकि उन सभी को गिना जाएगा।
यदि स्ट्रिंग की लंबाई 2 से अधिक है, तो count को 2 से आरंभ करें।
अब, i को 1 से शुरू करके और i के (लंबाई-1) से कम होने तक लूप शुरू करें
लूप के अंदर, जांचें कि क्या (str[i-1] = str[i+1]) है तो count को 1 से बढ़ाएं
अब count का कुल मान लौटाएं
परिणाम प्रिंट करें।
उदाहरण
#include <iostream>
using namespace std;
// वर्णों को गिनने के लिए
int countChar(string st) {
int size = st.length();
if (size <= 2) {
return size;
}
int result = 2;
// स्ट्रिंग को पार करें
for (int i = 1; i < size - 1; i++) {
// यदि पिछला और अगला वर्ण समान है तो गिनती को 1 से बढ़ाएं
if (st[i - 1] == st[i + 1]) {
result++;
}
}
// परिणाम लौटाएं
return result;
}
int main() {
string st = "poiot";
cout << "count is " << countChar(st);
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा
count is 3