gpt4 book ai didi

java - Anagram 排序最后一步

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:19 25 4
gpt4 key购买 nike

我试图执行变位词排序,直到这里我才这样做:

我对数组中的每个string进行了排序,并将其存储到hashmap中。

现在我有一个映射,键是字符串,值是该字符串的变位词。

代码如下:

public static void anagramSort(String[] s){

HashMap<String, Set<String>> h=new HashMap<String, Set<String>>();
String temp[]=new String[s.length];
Set<String> result=new LinkedHashSet<String>();
for(int i=0;i<s.length;i++){

char[] c=s[i].toCharArray();
Arrays.sort(c);
temp[i]=new String(c);

if(h.containsKey(temp[i])){
Set<String> s1=new TreeSet<String>();
s1.addAll(h.get(temp[i]));
s1.add(s[i]);
h.put(temp[i], s1);
}
else{
Set<String> s2=new TreeSet<String>();
s2.add(s[i]);
h.put(temp[i], s2);
}
}
System.out.println(h);
}

现在我想将 hashmap 的所有这些值放入一个字符串数组或一个集合中,以便所有的字谜都在一起。

我试图将它们( HashMap 中的值)放在一个集合中,但它变得越来越笨拙。

真诚感谢任何帮助。

最佳答案

您可以遍历 values() 并将它们收集到 List 中:

Map<String, Set<String>> h = ...; // The map created in the OP

List<String> allAnagrams = new LinkedList<>();
for (Set<String> anagrams : h.values()) {
allAnagrams.addAll(anagrams);
}

关于java - Anagram 排序最后一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25418622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com