[메모리 검색 87 스크램블 문자열 leetcode

문제 : https://leetcode.com/problems/scramble-string/

        메모리 검색. 가능한 모든 교환 상황에서 권리를 찾기.

클래스 솔루션 {
 공개 : 
    unordered_map도 < 문자열 , 부울 > DP;
    불리언 isScramble ( 문자열 S1, 문자열 S2) {
         경우 (dp.find (S1 + "  " + S2)! = dp.end ())
             복귀 DP [S1 + "  " + S2];
        INT N = s1.size ();
        경우 (S1 == S2) 반환  사실 ; 

        벡터 < INT > 카운트 ( 256 , 0);
        위한 ( int로 I = 0 ; I <s1.size ()가 난 ++ ) { 
            [S1 [I] 카운트 ++ ; 
            [S2의 [를 I] 카운트 - ; 
        } 
        에 대한 (자동 C : 카운트) {
             경우 (! C 것은 = 0 ) 반환  거짓 ; 
        } 
        부울 입술 = 거짓 ;
        위한 ( int로 I = 1 ; i가 N <; 내가 ++ ) { 
            입술을 | = ((isScramble (s1.substr ( 0 , I) s2.substr (N - I)) &&
                isScramble (s2.substr ( 0 , N - I) s1.substr (I))) 
        || (isScramble (s1.substr ( 0 , I) s2.substr ( 0 , I)) && isScramble (s1.substr (I) s2.substr (I)))); } 리턴 DP [S1 + " " + S2 =의 입술을; } };

 

추천

출처www.cnblogs.com/fish1996/p/11322753.html