Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
思路:回文构词法是由颠倒字母顺序而来的单词。主要的特点就是字母个数和种类都一样,只是改变了其顺序。使用map<string,int> amp来保存一个字符串及其出现的位置。首先,从strs第一个字符串开始遍历,使用一变量s来保存,并对其进行排序;2)在amp中查找s,如果没有找到,则记录amp记录s在strs中的位置下标,如果存在,则将第一次出现的字符串保存入result中去,即result.push_back(strs(amp[s]),并且将amp[s]=-1——防止重复查找,然后再将该strs中的字符串保存入result中
class Solution {public: vectoranagrams(vector &strs) { vector result; if(strs.size()<=1) return result; map amp; map ::iterator it; for(int i=0;i =0) { result.push_back(strs[amp[s]]); amp[s]=-1; } result.push_back(strs[i]); } } return result; }};