给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
思路:
利用字符数组的排序,将字符串数组中的每个字符串转换为字符数组,进行排序;
排序后的字符串作为字典的键,将排序后相同的字符串作为异味词放入字典中的同一个列表中。
最终,返回所有这些列表组成的列表。
public class Solution {
public IList<IList<string>> GroupAnagrams(string[] strs) {
Dictionary<string,List<string>> sortDic = new Dictionary<string,List<string>>();
foreach(string str in strs)
{
char[] charArray = str.ToCharArray();
Array.Sort(charArray);
string sorted = new string(charArray);
if(!sortDic.ContainsKey(sorted))
{
sortDic.Add(sorted, new List<string>());
}
sortDic[sorted].Add(str);
}
return sortDic.Values.ToList<IList<string>>();
}
}