给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
思路:
利用字符数组的排序,将字符串数组中的每个字符串转换为字符数组,进行排序;
排序后的字符串作为字典的键,将排序后相同的字符串作为异味词放入字典中的同一个列表中。
最终,返回所有这些列表组成的列表。
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>>();}
}