दो तार, X और Y, समरूपी कहलाते हैं यदि X में प्रत्येक वर्ण की सभी घटनाओं को Y प्राप्त करने के लिए किसी अन्य वर्ण से बदला जा सकता है और इसके विपरीत। उदाहरण के लिए, स्ट्रिंग्स ACAB और XCXY पर विचार करें। वर्णों के क्रम को बनाए रखते हुए किसी वर्ण की सभी घटनाओं को किसी अन्य वर्ण से प्रतिस्थापित किया जाना चाहिए। कोई भी दो वर्ण एक ही वर्ण से मैप नहीं कर सकते हैं, लेकिन एक वर्ण स्वयं को मैप कर सकता है।
उदाहरण 1
इनपुट - s ="अंडा", t ="जोड़ें"
>आउटपुट - सच
उदाहरण 2
इनपुट - एस ="फू", टी ="बार"
>आउटपुट - झूठा
समय की जटिलता - ओ(एन)
अंतरिक्ष जटिलता - ओ(एन)
कोड
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