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

सी ++ में दिए गए पैटर्न के साथ समाप्त होने वाले तारों की गणना करें

हमें स्ट्रिंग्स की एक सरणी दी गई है str[] और एक पैटर्न स्ट्रिंग पैट। लक्ष्य str[] के स्ट्रिंग तत्वों को खोजना है जिनके अंत में पैटर्न पैट है।

हम str के प्रत्येक स्ट्रिंग को पार करेंगे और अंतिम वर्णों की तुलना pat से करेंगे। अगर वे वेतन वृद्धि से मेल खाते हैं

आइए उदाहरणों से समझते हैं।

इनपुट

str[]={ “kittens”, “hens”, “deers”, “dogs” } pat=”ens”

आउटपुट

Strings that end with given pattern: 2

स्पष्टीकरण

Strings “kitt-ens” and “h-ens” end with “ens”.

इनपुट

str[]={ “tickets”, “wickets”, “bats”, “cricket” } pat=”et”

आउटपुट

Strings that end with given pattern: 1

स्पष्टीकरण

Strings “wick-et” ends with “et”.

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • हम स्ट्रिंग सरणी str[] और एक पैटर्न स्ट्रिंग पैट।

  • N, str[] में स्ट्रिंग्स की संख्या नहीं है।

  • फ़ंक्शन एंडपैटर्न (स्ट्रिंग स्ट्र [], इंट एन, स्ट्रिंग पीटीआर) स्ट्रिंग में स्ट्रिंग की गिनती देता है जो दिए गए पैटर्न के साथ समाप्त होता है

  • प्रारंभिक चर गणना को 0 के रूप में लें।

  • लूप के लिए i=1 से i . तक का उपयोग करके ट्रैवर्स करें

  • प्रत्येक स्ट्रिंग str[i] को s के रूप में लें। मान लें कि slen s.length() है।

  • प्लेन =ptr.lenght () लें। झंडा लें=1.

  • स्ट्रिंग s और पैटर्न ptr की अंतिम अनुक्रमणिका प्राप्त करने के लिए अब प्लेन और slen को 1 से घटाएं।

  • प्लेन>=0 तक लूप चेक करते समय उपयोग करना।

  • यदि कोई एस [स्लेन]! =पीआरटी [प्लेन]। ध्वज =0 सेट करें और लूप तोड़ें। अन्यथा अगले वर्ण को अंत से जांचने के लिए प्लेन और स्लैन घटाएं।

  • समय समाप्त होने के बाद, यदि ध्वज अभी भी 1 है, तो जैसे ही ptr s में आता है, वेतन वृद्धि की गिनती होती है।

  • सभी लूपों के अंत के बाद वापसी की गिनती जो दिए गए पैटर्न के साथ समाप्त होने वाली स्ट्रिंग्स की गिनती है।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int endPattern(string str[], int n, string ptr){
   int count=0;
   for(int i=0;i<n;i++){
      string s=str[i];
      int slen=s.length();
      int plen=ptr.length();
      int flag=1;
      slen--; //last index
      plen--;
      while(plen>=0){
         if(ptr[plen]!=s[slen]){
            flag=0;
            break;
         }
         plen--;
         slen--;
      }
      if(flag==1)
         { count++; }
   }
   return count;
}
int main(){
   string patrn = "pes";
   int N = 4;
   string str[] = { "stripes", "cars", "ripes", "pipes" };
   cout <<"Strings that end with given pattern: "<<endPattern(str,N,patrn);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Strings that end with given pattern: 3

  1. C++ में दिए गए स्ट्रिंग से दिशा ज्ञात करें

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

  1. सभी संभावित एन अंकों की संख्या की गणना करें जो सी ++ में दी गई शर्त को पूरा करती हैं

    इस ट्यूटोरियल में, हम दिए गए शर्त को पूरा करने वाले संभावित एन अंकों की संख्या को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक पूर्णांक प्रदान किया जाएगा। हमारा काम यह जांचना है कि एन अंक वाले नंबरों में से कौन सा नंबर फॉलो करता है संख्या + उल्टा (संख्या) =10N -1 उदाहरण #include <

  1. सी ++ में एक शब्दकोश में विशिष्ट पैटर्न से मेल खाने वाले सभी तार खोजें

    विचार करें कि हमारे पास डिक्शनरी नामक स्ट्रिंग्स की एक सूची है। हमारे पास एक और पैटर्न स्ट्रिंग है। हमारा काम उन स्ट्रिंग्स को ढूंढना है जो पैटर्न से मेल खाती हैं। मान लीजिए कि शब्दकोश [abb, xyz, aab, kmm] जैसा है, और पैटर्न stt है, तो परिणाम abb, और kmm होंगे। चूंकि पैटर्न में पहले एक अक्षर होता है