কম্পিউটার

প্রদত্ত শব্দগুলি C++ এ প্রদত্ত প্যাটার্ন বজায় রাখছে কি না তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি প্যাটার্ন p এবং একটি স্ট্রিং str আছে, আমাদের পরীক্ষা করতে হবে str একই প্যাটার্ন অনুসরণ করছে কি না। এখানে অনুসরণ মানে প্যাটার্নে একটি অক্ষর এবং স্ট্র-এ একটি অ-খালি শব্দের মধ্যে একটি দ্বিখণ্ডন রয়েছে।

সুতরাং, যদি ইনপুট প্যাটার্ন ="cbbc", str ="শব্দ প্যাটার্ন প্যাটার্ন শব্দ" এর মত হয়, তাহলে আউটপুট হবে True।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • strcin :=str

  • একটি অ্যারে শব্দ সংজ্ঞায়িত করুন

  • strcin

    -এর প্রতিটি শব্দের জন্য
    • শব্দের শেষে শব্দ ঢোকান

  • একটি মানচিত্র p2i

    সংজ্ঞায়িত করুন
  • i :=0

  • pat :=খালি স্ট্রিং

  • প্যাটার্নে c-

    এর জন্য
    • যদি c p2i এর সদস্য না হয়, তাহলে −

      • (i 1 দ্বারা বাড়ান)

      • p2i[c] :=i

    • pat :=pat concatenate p2i[c]

  • একটি মানচিত্র str2i

    সংজ্ঞায়িত করুন
  • i :=0

  • pat1 :=ফাঁকা স্ট্রিং

  • শব্দে c এর জন্য -

    • যদি c str2i এর সদস্য না হয়, তাহলে −

      • (i 1 দ্বারা বাড়ান)

      • str2i[c] :=i

    • pat1 :=pat1 concatenate str2i[c]

  • প্রত্যাবর্তন true যখন pat1 pat এর মত হয়

উদাহরণ

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool wordPattern( string pattern, string str ) {
      istringstream strcin(str);
      string word;
      vector<string> words;
      while (strcin >> word)
         words.push_back(word);
      unordered_map<char, int> p2i;
      int i = 0;
      string pat = "";
      for (auto c : pattern) {
         if (p2i.count(c) == 0) {
            i++;
            p2i[c] = i;
         }
         pat += to_string(p2i[c]);
      }
      unordered_map str2i;
      i = 0;
      string pat1 = "";
      for (auto c : words) {
         if (str2i.count(c) == 0) {
            i++;
            str2i[c] = i;
         }
         pat1 += to_string(str2i[c]);
      }
      return pat1 == pat;
   }
};
main(){
   Solution ob;
   cout << (ob.wordPattern("cbbc", "word pattern pattern word"));
}

ইনপুট

"cbbc", "word pattern pattern word"

আউটপুট

1

  1. একটি গাছ উচ্চতা ভারসাম্যপূর্ণ কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম C++ এ

  2. একটি 3-ডি প্লেনের পয়েন্টগুলি কপ্ল্যানার কিনা তা পরীক্ষা করার জন্য C++ প্রোগ্রাম

  3. একটি গ্রাফ দৃঢ়ভাবে সংযুক্ত কি না তা পরীক্ষা করার জন্য C++ প্রোগ্রাম

  4. একটি প্রদত্ত স্ট্রিং Heterogram কিনা তা পরীক্ষা করার জন্য C# প্রোগ্রাম