资讯专栏INFORMATION COLUMN

[LintCode] Anagrams

GitChat / 2450人阅读

摘要:对变形词的查找和归类,可以将自然排序的词根和所有同根变形词成对存入哈希表里。然后,返回里大于的字符串数组,再存入结果数组。注意并不是的结构,而是和数组相同的,所以存到一定要用方法。有几行容易出错的语句,可以注意一下

Problem

Given an array of strings, return all groups of strings that are anagrams.

Notice

All inputs will be in lower-case

Example

Given ["lint", "intl", "inlt", "code"], return ["lint", "inlt", "intl"].

Given ["ab", "ba", "cd", "dc", "e"], return ["ab", "ba", "cd", "dc"].

Note

对变形词的查找和归类,可以将自然排序的词根和所有同根变形词成对存入哈希表map里。然后,返回map.values()size大于1的字符串数组,再存入结果数组res。注意res并不是ArrayList>()的结构,而是和list数组相同的ArrayList(),所以存listres一定要用addAll()方法。
有几行容易出错的语句,可以注意一下:
char[] temp = str.toCharArray();
String sortedstr = new String(temp);
for (ArrayList str: map.values()) {};
res.addAll(list);

Solution
public class Solution {
    public List anagrams(String[] strs) {
        List res = new ArrayList();
        HashMap> map = new HashMap>();
        for (String str: strs) {
            char[] temp = str.toCharArray();
            Arrays.sort(temp);
            String sortedstr = new String(temp);
            if (map.containsKey(sortedstr)) {
                ArrayList list = map.get(sortedstr);
                list.add(str);
                map.put(sortedstr, list);
            }
            else {
                ArrayList list = new ArrayList();
                list.add(str);
                map.put(sortedstr, list);
            }
        }
        for (ArrayList list: map.values()) {
            if (list.size() > 1) res.addAll(list);
        }
        return res;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65691.html

相关文章

  • [LintCode] Substring Anagrams

    Problem Given a string s and a non-empty string p, find all the start indices of ps anagrams in s. Strings consists of lowercase English letters only and the length of both strings s and p will not be...

    andong777 评论0 收藏0
  • [LintCode/LeetCode] Two Strings are Anagrams/Valid

    摘要:建立一个长度为的数组,统计所有个字符在出现的次数,然后减去这些字符在中出现的次数。否则,循环结束,说明所有字符在和中出现的次数一致,返回。 Program Write a method anagram(s,t) to decide if two strings are anagrams or not. Example Given s=abcd, t=dcab, return true....

    vslam 评论0 收藏0
  • [Leetcode] Group Anagrams 变形词

    摘要:我们将每个词排序后,根据这个键值,找到哈希表中相应的列表,并添加进去。 Group Anagrams 最新更新请见:https://yanjia.me/zh/2019/01/... Given an array of strings, group anagrams together. For example, given: [eat, tea, tan, ate, nat, bat...

    Lin_YT 评论0 收藏0
  • 49. Group Anagrams and 249. Group Shifted Strings

    摘要:也就是同构异形体。特点是有相同数量的组成。素数可以素数表。这里使用而不是可以避免最后从导出结果的时间。修改了和得到的方法,其他都一样。但是会有解不了的地方。还有个特殊情况就是不是一组。如果数字编码出来都是如果用编码,出现的就是。 49 Group Anagrams Given an array of strings, group anagrams together. For examp...

    cppowboy 评论0 收藏0
  • [LeetCode]Find All Anagrams in a String

    摘要:解题思路,就是只顺序不同但个数相同的字符串,那我们就可以利用的思想来比较每个字符串中字符出现的个数是否相等。 Find All Anagrams in a StringGiven a string s and a non-empty string p, find all the start indices of ps anagrams in s. Strings consists of...

    niceforbear 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<