leetCode 884题

    技术2022-07-11  104

    leetcode 884

    给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)

    如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。

    返回所有不常用单词的列表。

    您可以按任何顺序返回列表。

    示例 1:

    输入:A = “this apple is sweet”, B = “this apple is sour” 输出:[“sweet”,“sour”]

    思路

    统计所有单词出现的次数,如果只出现了一次,就放在返回的数组中

    代码

    public String[] uncommonFromSentences(String A, String B) { //先根据分好空格分开 String[] a = A.split(" "); String[] b = B.split(" "); //然后存入map中,key=单词,value=出现的次数 HashMap<String, Integer> map = new HashMap<>(); for (int i = 0; i < a.length; i++) { map.put(a[i],map.getOrDefault(a[i],0)+1); } for (int i = 0; i < b.length; i++) { map.put(b[i],map.getOrDefault(b[i],0)+1); } ArrayList<String> list = new ArrayList<>(); //然后遍历所有的key,对比value=1的,放入list中 for (String word: map.keySet()) { if (map.get(word)==1){ list.add(word); } } //list转化为字符串数组 return list.toArray(new String[list.size()]) ; }
    Processed: 0.010, SQL: 9