题目考察的知识点:字符串
题目解答方法的文字分析:判断两个字符串是否为同一个,排序后再判断;大致思路是,从strs数组中寻找是否同一类,如果是,则相加,并且删除这个字符串,直到strs为空。
本题解析所用的编程语言:c++
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串vector * @return string字符串vector */ bool issame(string s1, string s2) { sort(s1.begin(), s1.end()); sort(s2.begin(), s2.end()); if (s1 == s2) return true; return false; } vector<string> groupAnagrams(vector<string>& strs) { // write code here vector<string> v; while (strs.size()) { string tmp, s; tmp = strs[0]; auto it = strs.begin(); while (it != strs.end()) { if (issame(tmp, *it)) { if (s.size()) s += ','; s += *it; it = strs.erase(it); } else ++it; } v.push_back(s); } sort(v.begin(), v.end()); return v; } };