X의 각 문자가 모두 Y를 얻기 위해 다른 문자로 대체될 수 있고 그 반대의 경우도 마찬가지인 경우 두 문자열 X 및 Y를 동형이라고 합니다. 예를 들어 문자열 ACAB 및 XCXY를 고려하십시오. 문자의 모든 발생은 문자 순서를 유지하면서 다른 문자로 대체되어야 합니다. 두 캐릭터는 같은 캐릭터에 매핑될 수 없지만 한 캐릭터는 자신에게 매핑될 수 있습니다.
예시 1
입력 − s ="계란", t ="추가"
출력 - 사실
예시 2
입력 − s ="푸", 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