一開始以為很難, 其實(shí)就是遞歸判斷,只要第一次做錯(cuò)的原因是我以為分割點(diǎn)是中間,其實(shí)是每一個(gè)點(diǎn)都可以是分割點(diǎn),想想2叉樹就想懂的。 2刷應(yīng)該就用dp吧, 這個(gè)也在手動(dòng)刷一次!理解多一次
class Solution {public: bool isScramble(string s1, string s2) { if(s1 == s2) return true; if(s1.length() == 0) return true; if(s1.length() != s2.length()) return false; int mark[26]; int n = s1.length(); memset(mark, 0, sizeof(mark)); for(int i = 0; i < n; ++ i){ mark[s1[i] - 'a']++; mark[s2[i] - 'a']--; } for(int i = 0; i < 26; ++ i) if(mark[i] != 0) return false; for(int i = 1; i < n; ++ i){ if((isScramble(s1.substr(0, i), s2.substr(0, i)) && isScramble(s1.substr(i), s2.substr(i))) || (isScramble(s1.substr(0, i), s2.substr(s1.size()-i)) && isScramble(s1.substr(i), s2.substr(0, s1.size()-i))) ) return true; } return false; }};新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注