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