https://leetcode.com/problems/group-anagrams/
Given an array of strings, group anagrams together.
Example:
Input: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Output:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
Note:
- All inputs will be in lowercase.
- The order of your output does not matter.
代码:
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string> > ans; int n = strs.size(); map<string, int> mp; int cnt = 0; vector<string> c[10010]; for(int i = 0; i < n; i ++) { string now = insequence(strs[i]); if(mp[now] == 0) { cnt ++; mp[now] = cnt; c[cnt].push_back(strs[i]); } else c[mp[now]].push_back(strs[i]); } for(int i = 1; i <= cnt; i ++) ans.push_back(c[i]); return ans; } string insequence(string s) { int len = s.length(); vector<char> let; for(int i = 0; i < len; i ++) let.push_back(s[i]); sort(let.begin(), let.end()); string t = ""; for(int i = 0; i < len; i ++) t += let[i]; return t; } };
期待下午的百香果双响炮 嘻嘻嘻嘿嘿嘿