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