49.Group Anagrams

来源:互联网 发布:如何修改淘宝好评 编辑:程序博客网 时间:2024/05/22 13:52

49.Group Anagrams

  • 题目描述:Given an array of strings, group anagrams together.

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

    [  ["ate", "eat","tea"],  ["nat","tan"],  ["bat"]]
  • 题目大意:给定一个sting数组,将字母颠倒后相等的字符串组合到一起,并返回。

  • 思路:hashmap,遍历string数组,将string字符串转化为char数组,对char数组排序,再转化为string字符串,之后在hashmap中判断是否存在当前字符串,如果存在,则将当前string添加到hashmap中,如果不存在则,新建hashmap。

  • 代码:

    package String;import java.util.*;/*** @Author OovEver* @Date 2017/12/8 21:53*/public class LeetCode49 {  public List<List<String>> groupAnagrams(String[] strs) {      if (strs == null || strs.length == 0) {          return new ArrayList<>();      }      Map<String, List<String>> map = new HashMap<>();      for (String str : strs) {          char[] srtToChar = str.toCharArray();          Arrays.sort(srtToChar);          String keyStr = String.valueOf(srtToChar);          if (!map.containsKey(keyStr)) {              map.put(keyStr, new LinkedList<String>());          }          map.get(keyStr).add(str);      }      return new ArrayList<>(map.values());  }}