給出乙個字串陣列s,找到其中所有的亂序字串(anagram)。如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。
所有的字串都只包含小寫字母
對於字串陣列 [「lint」,」intl」,」inlt」,」code」]
返回 [「lint」,」inlt」,」intl」]
思路:認為每一組亂序字串都有唯一的相同的「 hash 值 」,但是這個值不侷限於數值,而是數字和字母的結合,比如 「and」 和 「dan」,他們的「 hash 值 」就是「a1d1n1」,」array」 和 「yarar」 就是 a2r2y1,這樣就確保了唯一性,演算法效率也很高。
c++**如下:
class solution
string res;
for(int i = 0;i!=hash.size();++i)
return res;
}vector
anagrams(vector
&strs)
//遍歷雜湊表
for(auto iter=hash_map.begin();iter!=hash_map.end();iter++)}}
return res;
}};
亂序字串
給出乙個字串陣列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...
lintcode 亂序字串
描述 給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。實現 public class solution hashmaph new hashmap for int i 0 i個人感覺這個題目,lintcode給出...