您的位置:首页 > 编程语言 > Java开发

Group Anagrams java代码实现

2017-12-09 22:28 621 查看
题目的需求:将

For example, given: 
["eat", "tea", "tan", "ate", "nat", "bat"]


Return:[["ate", "eat","tea"], ["nat","tan"],["bat"]]

思路:首先将每个字符串按照asc码进行排序,然后eat 就成了aet,以aet为key, eat,tea,构成的list为value进行返回即可。
  
publicstatic
List<List<String>> groupAnagrams(String[]
strs) {

          List<List<String>>
listb=new
LinkedList<List<String>>();
          Map<String,List<String>>
map=new
HashMap<String,List<String>>();
          for
(int
i
= 0;
i
<
strs.length;
i++) {
              char[]
charArray
=
strs[i].toCharArray();
[align=left]              Arrays.sort(charArray);[/align]
              String
string
=
new
String(charArray);
[align=left]              System.out.println(string);[/align]
[align=left]              if(map.containsKey(string)){[/align]
                   List<String>
list
=
map.get(string);
[align=left]                   list.add(strs[i]);[/align]
[align=left]              }else{[/align]
                   LinkedList<String>
linkedList
=
new
LinkedList<String>();
[align=left]                   linkedList.add(strs[i]);[/align]
[align=left]                   map.put(string,linkedList);[/align]
[align=left]              }[/align]
[align=left]          }[/align]
          for
(String
key:map.keySet())
{
[align=left]              listb.add(map.get(key));[/align]
[align=left]          }[/align]
          return
listb;
[align=left]     }[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: