Leetcode 亂序字串

2021-10-07 03:24:36 字數 645 閱讀 6995

題目給出乙個字串s1,我們可以用遞迴的方法將字串分成兩個非空的子串來將s1表示成乙個二叉樹

下面是s1=「great」的一種二叉樹的表現形式:

great↵   /    ↵  gr    eat↵ /     /  ↵g   r  e   at↵           / ↵          a   t
將字串亂序的方法是:選擇任意的非葉子節點,交換它的兩個孩子節點。

例如:如果我們選擇節點「gr」交換他的兩個孩子節點,就會產生乙個亂序字串"rgeat"

思路:如果s1 s2互為亂序字串  那麼一定是其中一部分相等,另外一部分互相交換

採取遞迴思路,轉化為子問題

bool isscramble(string s1, string s2) ;

for(int i=0;ifor(int i=0;i<26;i++)

if(count[i]!=0)

return false; //如果字元組成不同那麼返回false

//若互為亂序字串 那麼一定是其中一部分子串對應相等 一部分子串對應相反

for(int i=1;ireturn false;

}

亂序字串

給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。所有的字串都只包含小寫字母 對於字串陣列 lint intl inlt code 返回 lint inlt intl 思路 認為每一組亂序字串都有唯一的相同的 h...

亂序字串

給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。所有的字串都只包含小寫字母 樣例1 輸入 lint intl inlt code 輸出 lint inlt intl 樣例 2 輸入 ab ba cd dc e ...

亂序字串演算法

蠻力法 思路等會睡醒之後寫吧 include string include algorithm include stdio.h include iostream include vector using namespace std bool isanagram string source,strin...