zoukankan      html  css  js  c++  java
  • [leetcode]Scramble String

    题不难,但是开始没理解意思

    用DFS就过了

    枚举从哪儿断开的

    有两种情况

    1、正常的

    2、交换了的

    result = isScramble(s1.substr(0,i) , s2.substr(0,i)) && isScramble(s1.substr(i) , s2.substr(i));

    这是正常的比较

    result = isScramble(s1.substr(0,i) , s2.substr(s1.size()-i,i)) && isScramble(s1.substr(i) , s2.substr(0 , s1.size()-i));

    这是交换了的比较

    class Solution {
    public:
        bool isScramble(string s1, string s2) {
            //first count the characters
            if(s1 == s2) return true;
            if(s1.size() != s2.size()) return false;
            int charset[26] = {0};
            for(int i = 0 ; i < s1.size() ; ++i)
              charset[s1[i]-'a']++;
            for(int i = 0 ; i < s2.size() ; ++i)
              charset[s2[i]-'a']--;
            for(int i = 0 ; i < 26 ; ++i)
              if(charset[i] != 0) return false;
            //end
            
            bool result = false;
            for(int i = 1 ; i < s1.size() ; ++i) {
                result = isScramble(s1.substr(0,i) , s2.substr(0,i)) && isScramble(s1.substr(i) , s2.substr(i));
                if(result) return true;
                result = isScramble(s1.substr(0,i) , s2.substr(s1.size()-i,i)) && isScramble(s1.substr(i) , s2.substr(0 , s1.size()-i));
                if(result) return true;
            }
            return false;
        }
    };
  • 相关阅读:
    内存检测与优化
    iOS逆向工程(1)
    UIBezierPath 概述
    万能弹窗,点击区域外消失
    逆向传值
    蓝牙开发
    pod
    github
    iOS语音
    图像去噪——分割后处理
  • 原文地址:https://www.cnblogs.com/x1957/p/3525486.html
Copyright © 2011-2022 走看看