কম্পিউটার

C++ এ আইসোমরফিক স্ট্রিং


ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে; তারা আইসোমরফিক কি না তা আমাদের পরীক্ষা করতে হবে। দুটি স্ট্রিংকে আইসোমরফিক বলা হয় যদি s-এর অক্ষরগুলি t পেতে প্রতিস্থাপন করা যায়।

অক্ষরের ক্রম সংরক্ষণ করার সময় একটি অক্ষরের সমস্ত ঘটনা অবশ্যই অন্য অক্ষর দিয়ে প্রতিস্থাপিত করতে হবে৷ কোন দুটি অক্ষর একই অক্ষরে মানচিত্র করতে পারে না কিন্তু একটি অক্ষর নিজেই মানচিত্র করতে পারে।

সুতরাং, যদি ইনপুটটি s ="degg", t ="add" এর মত হয়, তাহলে আউটপুটটি সত্য হবে, কারণ e a-তে ম্যাপ করতে পারে এবং g d-এ ম্যাপ করতে পারে।

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

  • 256 আকারের একটি অ্যারে অ্যারের সংজ্ঞায়িত করুন এবং -1

    দিয়ে পূরণ করুন
  • 256 আকারের পরিদর্শন করা অ্যারে সংজ্ঞায়িত করুন এবং 0

    দিয়ে পূরণ করুন
  • 256 আকারের একটি পরিদর্শনকৃত অ্যারে সংজ্ঞায়িত করুন এবং 0

    দিয়ে পূরণ করুন
  • আরম্ভ করার জন্য i :=0, যখন i

    • যদি পরিদর্শন করা [s[i]] 1 এর সমান বা পরিদর্শন করা1[t[i]] 1 এর সমান, তাহলে −

      • যদি arr[s[i]] 'a'-এর t[i] - ASCII-এর সমান না হয়, তাহলে −

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

    • অন্যথায়

      • পরিদর্শন [s[i]] :=1

      • পরিদর্শন করেছেন1[t[i]] :=1

      • arr[s[i]] :=t[i] - 'a'

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

উদাহরণ

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool isIsomorphic(string s, string t) {
      vector<int> arr(256, -1);
      vector<bool> visited(256, 0);
      vector<bool> visited1(256, 0);
      for (int i = 0; i < s.length(); i++) {
         if (visited[s[i]] == 1 || visited1[t[i]] == 1) {
            if (arr[s[i]] != t[i] - 'a') {
               return false;
            }
         }
         else {
            visited[s[i]] = 1;
            visited1[t[i]] = 1;
            arr[s[i]] = t[i] - 'a';
         }
      }
      return true;
   }
};
main(){
   Solution ob;
   cout << (ob.isIsomorphic("sky","fry"));
}

ইনপুট

"sky","fry"

আউটপুট

1

  1. strcmp() C/C++ এ

  2. C++ প্রোগ্রাম বিপরীত ক্রমে স্ট্রিং সংযুক্ত করতে

  3. C++-এ দুটি স্ট্রিং-এর বৃহত্তম মার্জ

  4. একটি গাছ আইসোমরফিক নাকি C++ এ নয় তা পরীক্ষা করুন