###### LeetCode: Anagrams

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace::std;
class Solution {
public:
long RSHash(string str)
{
int a = 378551;
int b = 63689;
long hash = 0;
for(int i = 0; i < str.size(); i++)
{
hash = hash * a + str[i];
a = a * b;
}
return hash;
}
vector<string> anagrams(vector<string> &strs) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<string> copy(strs);
vector<string> result;
map<long, vector<int> > mymap;
long key = 0;
for(size_t i = 0; i < strs.size(); i++)
{
sort(strs[i].begin(), strs[i].end());
}

for(size_t i = 0; i < strs.size(); i++)
{
//mymap[strs[i]].push_back(i);
mymap[RSHash(strs[i])].push_back(i);
}

for(size_t i = 0; i < strs.size(); i++)
{
if(mymap[RSHash(strs[i])].size() > 1)
while(mymap[RSHash(strs[i])].size() > 0)
{
result.push_back(copy[mymap[RSHash(strs[i])].back()]);
mymap[RSHash(strs[i])].pop_back();
}

}

return result;

}
};
int main()
{
vector<string> aa;

aa.push_back("tea");
aa.push_back("ate");
aa.push_back("eta");

Solution ss;
ss.anagrams(aa);
//	int a;
//	cout<<a<<endl;
//	ss.print(ss.threeSum(aa));
}


for(int i = 0; i < size; i++)

map[hashvalue].push_back(i);

Round 2:

class Solution {
public:
vector<string> anagrams(vector<string> &strs) {
map<string, int> map;
vector<string> result;
for(int i = 0; i < strs.size(); i++)
{
string temp = strs[i];
std::sort(temp.begin(), temp.end());
if(map[temp] == 0)
map[temp] = i+1;
else if(map[temp] == -1)
{
result.push_back(strs[i]);
}
else
{
result.push_back(strs[map[temp]-1]);
result.push_back(strs[i]);
map[temp] = -1;
}
}
return result;
}
};

#### LeetCode（49）Group Anagrams

2015-09-01 20:28:44

#### leetcode：Group Anagrams 【Java】

2016-03-11 14:51:12

#### leetcode 49. Group Anagrams （Java实现）

2017-01-06 15:47:40

#### leetcode:Find All Anagrams in a String 滑动窗口方法总结

2016-11-03 20:40:11

#### LeetCode 49. Group Anagrams （Python）

2017-08-05 19:28:54

#### leetcode 438. Find All Anagrams in a String& 滑动窗口

2017-07-11 16:49:45

#### Leetcode: Anagrams

2013-10-05 17:02:34

#### LeetCode-49-Group Anagrams(哈希)-Medium

2016-01-10 18:32:32

#### Leetcode 438. Find All Anagrams in a String 找变位子串 解题报告

2016-10-23 14:46:13

#### Anagrams -- LeetCode

2014-03-21 01:02:04

## 不良信息举报

LeetCode: Anagrams