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