49. Group Anagrams && 242. Valid Anagram

Given an array of strings, group anagrams together.

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

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

Note: All inputs will be in lower-case.

 

public class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<>();
        
        for(String s : strs)
        {
            char[] key = s.toCharArray();
            Arrays.sort(key);
            String sKey = new String(key);
            List<String> dest = map.get(sKey);
            if(dest == null)
            {
                dest = new ArrayList<String>();
                map.put(sKey, dest);
            }
            dest.add(s);
        }
        
        List<List<String>> ret = new ArrayList<>();
        for(List<String> group: map.values())
        {
            ret.add(group);
        }
        return ret;
    }
}

 

242. Valid Anagram

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:
You may assume the string contains only lowercase alphabets.

Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?

Hide Tags
 Hash Table Sort
 
public class Solution {
    public boolean isAnagram(String s, String t) {
        if(s == null && t == null || s.length() == 0 && t.length() == 0)
        if((s == null && t != null) || 
           (s != null && t == null) ||
           (s.length() != t.length()))
            return false;
            
        int[] alphabet = new int[26];
        for (int i = 0; i < s.length(); ++i) 
            ++alphabet[s.charAt(i) - 'a'];
        for (int i = 0; i < t.length(); ++i) 
            --alphabet[t.charAt(i) - 'a'];
            
        for (int i : alphabet) 
            if (i != 0) 
                return false;
        return true;
    }
}

 

 
 
posted @ 2016-06-11 05:58  新一代的天皇巨星  阅读(173)  评论(0)    收藏  举报