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