हमें स्ट्रिंग्स का एक सरणी str[] और एक पैटर्न स्ट्रिंग pat दिया गया है। लक्ष्य str[] के उन स्ट्रिंग तत्वों को ढूंढना है जिनके अंत में पैटर्न pat हो।
हम str के प्रत्येक स्ट्रिंग को पार करेंगे और अंतिम वर्णों की तुलना pat से करेंगे। यदि वे मेल खाते हैं तो काउंट बढ़ाएं।
उदाहरण से समझते हैं
इनपुट
str[]={ "kittens", "hens", "deers", "dogs" } pat="ens" आउटपुट
दिए गए पैटर्न से समाप्त होने वाली स्ट्रिंग्स: 2
व्याख्या
स्ट्रिंग्स "kitt-ens" और "h-ens" "ens" से समाप्त होती हैं।
इनपुट
str[]={ "tickets", "wickets", "bats", "cricket" } pat="et" आउटपुट
दिए गए पैटर्न से समाप्त होने वाली स्ट्रिंग्स: 1
व्याख्या
स्ट्रिंग "wick-et" "et" से समाप्त होती है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम स्ट्रिंग सरणी str[] और एक पैटर्न स्ट्रिंग pat लेते हैं।
N, str[] में स्ट्रिंग्स की संख्या है।
फ़ंक्शन endPattern(string str[], int n, string ptr) str में उन स्ट्रिंग्स की संख्या लौटाता है जो दिए गए पैटर्न से समाप्त होती हैं।
प्रारंभिक चर count को 0 से आरंभ करें।
i=0 से i
प्रत्येक स्ट्रिंग str[i] को s के रूप में लें। slen s.length() हो।
plen=ptr.length() लें। flag=1 लें।
अब plen और slen को 1 से घटाकर स्ट्रिंग s और पैटर्न ptr के अंतिम इंडेक्स प्राप्त करें।
व्हाइल लूप का उपयोग करके तब तक जांचें जब तक plen>=0।
यदि कोई s[slen]!=ptr[plen]। flag=0 सेट करें और लूप तोड़ें। अन्यथा अगले वर्ण की जांच के लिए plen और slen को घटाएं।
व्हाइल समाप्त होने के बाद, यदि flag अभी भी 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--; //अंतिम इंडेक्स 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 <<"दिए गए पैटर्न से समाप्त होने वाली स्ट्रिंग्स: "<<endPattern(str,N,patrn); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
दिए गए पैटर्न से समाप्त होने वाली स्ट्रिंग्स: 3