中級算法之數組和字符串:字謎分組

給定一個字符串數組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。

示例:

輸入: ["eat", "tea", "tan", "ate", "nat", "bat"],
輸出:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

說明:

所有輸入均爲小寫字母。
不考慮答案輸出的順序。

用map存,key存sort後的詞,value存與key的字母異位詞,最後遍歷map,將所有的value整合起來即爲結果。

vector<vector<string>> groupAnagrams(vector<string>& strs) {
	vector<vector<string>> res;
	map<string, vector<string>> m;
	for (int i = 0; i < strs.size(); i++) {
		string strTemp = strs[i];
		sort(strTemp.begin(),strTemp.end());
		m[strTemp].push_back(strs[i]);
	}
	for(auto i=m.begin();i!=m.end();i++){
		res.push_back(i->second);
	}
	return res;
}

發佈了44 篇原創文章 · 獲贊 0 · 訪問量 1288
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章