কম্পিউটার

প্রোগ্রাম চেক করার জন্য আমরা অক্ষর প্রতিস্থাপন করতে পারি অন্য স্ট্রিং-এ স্ট্রিং তৈরি করতে নাকি C++ এ নয়


ধরুন আমাদের দুটি ছোট হাতের স্ট্রিং s এবং t আছে। এখন একটি ক্রিয়াকলাপ বিবেচনা করুন যেখানে আমরা s-এ একটি অক্ষরের সমস্ত ঘটনাকে অন্য অক্ষর দিয়ে প্রতিস্থাপন করি। যদি আমরা এই ক্রিয়াকলাপটি যে কোনও সংখ্যক বার করতে পারি, আমাদের পরীক্ষা করতে হবে s কে t-এ রূপান্তর করা যায় কি না৷

সুতরাং, যদি ইনপুটটি s ="eye" t ="pip" এর মত হয়, তাহলে আউটপুট হবে True, কারণ আমরা "e"s এর পরিবর্তে "p"s তারপর "y" কে "i" দিয়ে প্রতিস্থাপন করতে পারি।

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

  • একটি মানচিত্র m1 এবং আরেকটি মানচিত্র m2 সংজ্ঞায়িত করুন

  • n :=s

    এর আকার
  • আরম্ভ করার জন্য i :=0, যখন i

    • যদি s[i] m1 এ থাকে, তাহলে −

      • যদি m1[s[i]] t[i] এর মত হয়, তাহলে −

        • পরবর্তী পুনরাবৃত্তির জন্য যান

      • মিথ্যা ফেরত দিন

    • অন্যথায়

      • m1[s[i]] :=t[i]

  • প্রত্যাবর্তন সত্য

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;
bool solve(string s, string t) {
   map m1, m2;
   int n = s.size();
   for(int i = 0; i <n; i++){
      if(m1.count(s[i])){
         if(m1[s[i]] == t[i]) continue;
            return false;
      }
      else{
         m1[s[i]] = t[i];
      }
   }
   return true;
}
int main(){
   string s = "eye", t = "pip";
   cout << solve(s, t);
}

ইনপুট

"eye","pip"

আউটপুট

1

  1. একটি স্ট্রিং অদলবদল পাইথন ব্যবহার করে স্ট্রিং সমান করতে পারে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে আরেকটি স্ট্রিং তৈরি করতে একটি স্ট্রিং পুনরাবৃত্তি করা যায় কিনা তা পরীক্ষা করুন

  3. আমরা পাইথনে প্রদত্ত স্ট্রিং অক্ষর থেকে কে প্যালিনড্রোম তৈরি করতে পারি কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম?

  4. প্রদত্ত স্ট্রিং পরীক্ষা করার প্রোগ্রামটি প্যানগ্রাম নাকি পাইথনে নয়