题目简介:给定一个字符串数组,将其中字符串含有的字符相等的放在一个集合中并返回这些集合的集合。
示例:
思路:可以使用蛮力法直接求解这些集合。依次遍历字符串集合,每次判断该字符串与现有的集合中是否相符,如果相符则添加至该集合,否则新建一个集合将其添加至该集合中。而每次判断都新建一个方法来进行判断。
代码如下:
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String >> lists=new ArrayList<>();
List<String > list=null;
int status=0;
for(int i=0;i<strs.length;i++)
{
status=0;
for(int j=0;j<lists.size();j++)
{
if(compare(strs[i], lists.get(j).get(0)))
{
lists.get(j).add(strs[i]);
status=1;
break;
}
}
if(status==0)
{
list=new ArrayList<>();
list.add(strs[i]);
lists.add(list);
}
}
return lists;
}
public boolean compare(String str1,String str2)
{
if(str1.length()!=str2.length())
return false;
char []one=str1.toCharArray();
Arrays.sort(one);
char []two=str2.toCharArray();
Arrays.sort(two);
int i=0;
for(;i<str1.length();i++)
{
if(one[i]!=two[i])
break;
}
if(i==str1.length())
return true;
return false;
}
}