首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将给定字符串数组中的不同字形组合在一起?

如何将给定字符串数组中的不同字形组合在一起?
EN

Stack Overflow用户
提问于 2019-09-29 07:13:18
回答 2查看 218关注 0票数 1

我有个问题。因此,假设我有大约10种不同的字符串类型,我需要编写一个方法,根据字符串是否为字形,将它们分组在一起。最好的方法是什么?二维数组?

显然,我还有其他方法可以比较字符串并确定它们是否是字谜。这个问题只是想问我如何解决这个问题,即在不同的组中对不同的字符串进行排序。

列表示例:-Dog -Bread -Africa -God -Dreab -dGO -Treat -dabre -trate -China

组1:狗,神,dGO

组2:面包,Dreab,dabre

第三组:非洲

第4组:处理,处理

第五组:中国

EN

Stack Overflow用户

发布于 2020-12-27 19:44:10

基于上述答案的Java代码。

代码语言:javascript
复制
    Map<String, List<String>> anagrams = new HashMap<String, List<String>>();
    List<String> words = new ArrayList<String>(strs.length);
    words.addAll(Arrays.asList(strs));
    for(String str:words){
        char[] word = str.toCharArray();
        Arrays.sort(word);
        String sortedWord = new String(word);
        
        if(anagrams.containsKey(sortedWord)){
            anagrams.get(sortedWord).add(str);
        }
        else{
           anagrams.put(sortedWord, new ArrayList<String>(Arrays.asList(str))); 
        }
        
    }
    List<List<String>> output = new ArrayList<List<String>>();
    for(Map.Entry<String, List<String>> entry:anagrams.entrySet()){
        output.add(entry.getValue());
    }
    return output;
}

在这里,anagram将是映射,它将以排序形式的anagram单词的键值对作为键,并将该anagram的相应变体作为值。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58150969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档