• 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;
        }
  • 相关阅读:
    CSAcademy Or Problem
    BZOJ 4516 [Sdoi2016] 生成魔咒
    SPOJ7258 SUBLEX
    SPOJ1812 LCS2
    SPOJ1811 LCS
    SPOJ8222 NSUBSTR
    洛谷3804 【模板】后缀自动机
    SPOJ287 NETADMIN
    SPOJ1693 COCONUTS
    BZOJ5329 SDOI2018 战略游戏
  • 原文地址:https://www.cnblogs.com/skillking/p/9700322.html
Copyright © 2020-2023  润新知