কম্পিউটার

C++ এ প্রদত্ত প্যাটার্ন দিয়ে শেষ হওয়া স্ট্রিংগুলি গণনা করুন


আমাদের স্ট্রিং str[] এর একটি অ্যারে এবং একটি প্যাটার্ন স্ট্রিং প্যাট দেওয়া হয়েছে। লক্ষ্য হল str[] এর স্ট্রিং উপাদানগুলি খুঁজে বের করা যার শেষে প্যাটার্ন প্যাট আছে।

আমরা str এর প্রতিটি স্ট্রিং অতিক্রম করব এবং প্যাটের সাথে শেষ অক্ষর তুলনা করব। যদি তারা ইনক্রিমেন্ট মেলে

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট

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[]-এ স্ট্রিং-এর সংখ্যা।

  • ফাংশন endPattern(string str[], int n, string ptr) প্রদত্ত প্যাটার্নের সাথে শেষ হওয়া str এ স্ট্রিংগুলির গণনা প্রদান করে

  • প্রারম্ভিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।

  • i=1 থেকে i পর্যন্ত লুপ ব্যবহার করে ট্র্যাভার্স করুন

  • প্রতিটি স্ট্রিং str[i] কে s হিসাবে নিন। slen কে s.length().

    বলা যাক
  • plen=ptr.lenght() নিন। পতাকা নিন=1.

  • স্ট্রিং s এবং প্যাটার্ন ptr-এর শেষ সূচী পেতে এখন 1 দ্বারা ডিক্রিয়েন্ট প্লেন এবং স্লেন।

  • যখন লুপ ব্যবহার করে plen>=0 পর্যন্ত চেক করুন।

  • যদি কোন s[slen]!=ptr[plen]। ফ্ল্যাগ=0 সেট করুন এবং লুপ ভাঙ্গুন। অন্যথায় শেষ থেকে পরবর্তী অক্ষর চেক করতে plen এবং slen হ্রাস করুন।

  • সময় শেষ হওয়ার পরে, যদি পতাকাটি এখনও 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++ এ একটি প্রদত্ত স্ট্রিং-এ শব্দ গণনা করুন

  2. C++ এ প্রদত্ত স্ট্রিং থেকে দিকটি খুঁজুন

  3. সমস্ত সম্ভাব্য N সংখ্যা সংখ্যা গণনা করুন যা C++ এ প্রদত্ত শর্ত পূরণ করে

  4. C++ এ একটি অভিধানে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন সমস্ত স্ট্রিং খুঁজুন