LeetCode 48 Anagrams
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
The meaning is the back-to-text syntax, that is, the types and numbers of letters in a word are not changed, but the order of letters is changed. Input = ["abc", "bca", "bac", "bbb", "bbca", "abcb"] output = ["abc", "bca ", "bac", "bbca", "abcb"] we only need a HashMap.
Public class Solution {public List
Anagrams (String [] strs) {ArrayList
Result = new ArrayList
(); HashMap
Hm = new HashMap
(); For (String str: strs) {char [] c = str. toCharArray (); Arrays. sort (c); if (! Hm. containsKey (String. valueOf (c) {hm. put (String. valueOf (c), str);} else {String s = hm. get (String. valueOf (c); if (! Result. contains (s) // The word that appears for the first time in a certain input sequence. // We have not added it. Now, add the result. add (s); result. add (str) ;}} return result ;}}