Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में समान पड़ोसियों के साथ वर्णों की गणना करें

हमें एक स्ट्रिंग दी गई है, मान लें, 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

  1. C++ में कम से कम K दोहराए जाने वाले वर्णों के साथ सबसे लंबा सबस्ट्रिंग

    मान लीजिए कि हमारे पास एक स्ट्रिंग s है, और हमें उस दिए गए स्ट्रिंग (केवल लोअरकेस अक्षरों से मिलकर) के सबसे लंबे सबस्ट्रिंग T की लंबाई का पता लगाना है, ताकि T में प्रत्येक वर्ण कम दिखाई न दे कश्मीर टाइम्स से। इसलिए यदि स्ट्रिंग ababbc और k =2 है, तो आउटपुट 3 होगा और सबसे लंबा सबस्ट्रिंग ababb होगा,

  1. C++ में वर्णों की पुनरावृत्ति के साथ सभी क्रमपरिवर्तन प्रिंट करें

    इस समस्या में, हमें n वर्णों की एक स्ट्रिंग दी जाती है और हमें स्ट्रिंग के वर्णों के सभी क्रमपरिवर्तन मुद्रित करने होते हैं। स्ट्रिंग के वर्णों को दोहराने की अनुमति है। क्रमपरिवर्तन का मुद्रण वर्णानुक्रम में किया जाना चाहिए (शब्दकोशीय रूप से क्रमबद्ध क्रम)। आइए विषय को बेहतर ढंग से समझने के लिए एक

  1. सी ++ में गेटलाइन (स्ट्रिंग)

    इसका उपयोग स्ट्रीम से वर्णों को बिना स्वरूपित इनपुट के रूप में निकालने के लिए किया जाता है और उन्हें सी-स्ट्रिंग के रूप में s में संग्रहीत करता है, जब तक कि निकाला गया वर्ण परिसीमन वर्ण नहीं होता है, या n वर्ण s (समाप्त अशक्त वर्ण सहित) को लिखे जाते हैं। घोषणा इस प्रकार है: basic_istream& getlin