发现规律:相似的字符串中的字符两两之间差相同,因此可以标准化所有字符串
使用哈希表将相同差的字符串存起来
时间复杂度O(nlogn)
class Solution {
public:
vector<vector<string>> groupStrings(vector<string>& strings) {
vector<vector<string>>res;
map<vector<int>,vector<string>>hash;
for(int i=0;i<strings.size();i++)
{
string c=strings[i];
auto t=get(c);
hash[t].push_back(c);
}
for(auto [c,v]:hash)
{
vector<string>temp;
for(auto k:v)
temp.push_back(k);
res.push_back(temp);
}
return res;
}
vector<int> get(string s)
{
vector<int>res;
int cha=s[0];
for(auto c:s)
res.push_back((c-s[0]+26)%26);
return res;
}
};