두 개의 문자열을 감안할 때 S 와 T 가 동형 경우, 결정한다.
의 문자 경우 두 문자열은 동형 의이 얻을 교체 할 수 있습니다 t을 .
문자의 순서를 유지하면서 캐릭터의 모든 사건은 다른 문자로 교체해야합니다. 두 개의 문자는 같은 문자에 매핑하지 않을 수 있지만, 캐릭터 자체에 매핑 할 수 있습니다.
예 1 :
입력 : S ="egg",
t ="add"
출력 : 사실
예 2 :
입력 : S ="foo",
t ="bar"
출력 : 거짓
예 3 :
INPUT : S ="paper",
T ="title"
출력 : 참으로
ASCII 코드 (256), 두 개의 어레이 (256)의 길이를 유지하기 위해, 두 배열의 초기 값과 동일하고, 두 개의 끈을 통과
클래스 해결 { 공개 : BOOL isIsomorphic ( 문자열 S, 문자열 T) { INT M1 [ 256 ] = { 0 } // ASCII 코드 256 총 INT M2 [ 256 ] = { 0 } 에 대해 ( int로 = I를 0 ; I <s.size (); I는 ++ ) { IF (M1 [S [I]를] M2가 = [T은 [I]를])! 돌아 거짓 상이한 위치에 대응 // 값이 아닌 라인에 M1 [S [I]를] = I + 1이다. ] M2 [T은 [I]를] = I +는 1이다. ; } 반환 사실 ; } };