Scramble String

来源:互联网 发布:无锡软件测试培训 编辑:程序博客网 时间:2024/06/05 09:05

题目地址:点击打开链接

class Solution {public:    bool isScramble(string s1, string s2) {        int N=s1.size();        if(s2.size()!=N)return false;        vector<vector<vector<bool>>> f(N+1,vector<vector<bool>>(N,vector<bool>(N,false)));        for(int i=0;i<N;++i){            for(int j=0;j<N;++j){                f[1][i][j]=(s1[i]==s2[j]);            }        }        for(int n=1;n<=N;++n){            for(int i=0;i<N-n+1;++i) {                for(int j=0;j<N-n+1;++j){                    for(int k=1;k<=n-1;++k){                        if((f[k][i][j]&&f[n-k][i+k][j+k])||(f[k][i][j+n-k]&&f[n-k][i+k][j])){                            f[n][i][j]=true;                            break;                        }                    }                }            }        }        return f[N][0][0];    }};


0 0