LeetCode (205) 동형 문자열 C ++

두 개의 문자열을 감안할 때  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이다. ;
        } 
        반환  사실 ; 
    } 
        
    
};

 

추천

출처www.cnblogs.com/dingxi/p/11571518.html