本文共 730 字,大约阅读时间需要 2 分钟。
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
anagrams:词的元素都相同,只是元素的顺序不同。
顺序不同,就按字典序排一下,就相同了,这样就可以比较是不是一样的了,如果一样,那么放在map中,就是相同的key。
class Solution {public: vectoranagrams(vector &strs) { map > mp; vector re; if(strs.size() <= 1) return re; vector ::iterator sit; sit = strs.begin(); while (sit != strs.end()) { string tmp = *sit; sort((tmp).begin(),(tmp).end());//uniform mp[tmp].push_back(*sit); ++sit; } map >::iterator mit = mp.begin(); while (mit != mp.end()) { if((*mit).second.size() > 1) for(int i = 0; i < (*mit).second.size(); ++i) re.push_back((*mit).second[i]); ++mit; } return re;}};
转载地址:http://prlji.baihongyu.com/