以为只要包含的各种字母个数相同就好了 但是有一些情况还是不满足的
不但数字要满足 而且还要满足partition之后可以recursive的满足 见判断条件
还可以用dp 下次研究
public class Solution {
public boolean isScramble(String s1, String s2) {
if ( s1.equals(s2) )
return true;
int len = s1.length();
int [] arr1 = new int [ 26 ];
int [] arr2 = new int [ 26 ];
for ( int i = 0; i < len; i ++ ){
arr1[ s1.charAt(i) - 'a' ] ++;
arr2[ s2.charAt(i) - 'a' ] ++;
}
for ( int i = 0; i < 26; i ++ ){
if ( arr1[ i ] != arr2 [ i ] )
return false;
}
for ( int i = 1; i < len; i ++ ){
if ( isScramble( s1.substring( 0, i ), s2.substring( 0, i )) && isScramble( s1.substring( i ), s2.substring( i )))
return true;
if ( isScramble( s1.substring( 0, i ), s2.substring( len - i )) && isScramble( s1.substring( i ), s2.substring( 0, len - i )))
return true;
}
return false;
}
}