87. Scramble String

一、题目

  1、审题

 

   2、分析

      给出两个字符串,以上述二叉树方法进行拆分、组合。判断两个字符串是否是同一个二叉树拆分、组合而成。

 

二、解答

  1、思路:

    ①、判断两个字符串中所含字符是否全部相同。

    ②、递归判断两个字符串是否满足旋转后相等。

public boolean isScramble(String s1, String s2) {
        
        if(s1.equals(s2))
            return true;
        
        int len = s1.length();
        int[] count = new int[26];
        for (int i = 0; i < len; i++) {
            count[s1.charAt(i) - 'a']++;
            count[s2.charAt(i) - 'a']--;
        }
        
        for (int i = 0; i < 26; i++) {
            if(count[i] != 0)
                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;
    }

 

posted @ 2018-09-25 16:40  skillking2  阅读(163)  评论(0编辑  收藏  举报