দুটি স্ট্রিং, X এবং Y,কে আইসোমরফিক বলা হয় যদি X-এর প্রতিটি অক্ষরের সমস্ত ঘটনাকে Y পেতে অন্য অক্ষর দিয়ে প্রতিস্থাপন করা যায় এবং এর বিপরীতে। উদাহরণস্বরূপ, ACAB এবং XCXY স্ট্রিংগুলি বিবেচনা করুন। অক্ষরের ক্রম সংরক্ষণ করার সময় একটি অক্ষরের সমস্ত ঘটনা অবশ্যই অন্য অক্ষর দিয়ে প্রতিস্থাপন করা উচিত। কোন দুটি অক্ষর একই অক্ষরের সাথে মানচিত্র করতে পারে না, তবে একটি অক্ষর নিজেই মানচিত্র করতে পারে৷
উদাহরণ 1
ইনপুট ৷ − s ="ডিম", t ="যোগ করুন"
আউটপুট - সত্য
উদাহরণ 2
ইনপুট ৷ − s ="foo", t ="বার"
আউটপুট - মিথ্যা
সময়ের জটিলতা − O(N)
স্পেস জটিলতা − O(N)
কোড
public class Arrays{ public bool IsStringIsomorphic(string s, string t){ if (s == null || t == null){ return false; } int[] chars1 = new int[128]; int[] chars2 = new int[128]; for (int i = 0; i < s.Length; i++){ if (chars1[s[i]] != chars2[t[i]]){ return false; } else{ chars1[s[i]] = i + 1; chars2[t[i]] = i + 1; } } return true; } } static void Main(string[] args){ Console.WriteLine(s.IsStringIsomorphic("add", "egg")); }
আউটপুট
True