给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。
样例
对于字符串数组 ["lint","intl","inlt","code"]
返回 ["lint","inlt","intl"]
注意
所有的字符串都只包含小写字母
public class Solution {
/**
* @param strs: A list of strings
* @return: A list of strings
*/
public List<String> anagrams(String[] strs) {
// write your code here
List<String> list = new LinkedList<String>();
Map<String, Integer> map = new HashMap<>();
String[] s_ = new String[strs.length];
for(int i=0;i<strs.length;i++)
{
char[] ch = strs[i].toCharArray();
Arrays.sort(ch);
s_[i] = String.valueOf(ch);
if(map.containsKey(s_[i]) == true)
{
int j = map.get(s_[i]);
map.put(s_[i], ++j);
}
else
map.put(s_[i], 1);
}
for(int i=0;i<strs.length;i++)
{
if(map.get(s_[i]) > 1)
list.add(strs[i]);
else
continue;
}
return list;
}
}