领扣LintCode算法问题答案-1598. 两句话中的不常见单词

    科技2022-07-13  155

    领扣LintCode算法问题答案-1598. 两句话中的不常见单词

    目录

    1598. 两句话中的不常见单词描述样例 1:样例 2: 题解鸣谢

    1598. 两句话中的不常见单词

    描述

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

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

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

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

    0 <= A.length <= 2000 <= B.length <= 200A 和 B 都只包含空格和小写字母。

    样例 1:

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

    样例 2:

    输入:A = "apple apple", B = "banana" 输出:["banana"]

    题解

    public class Solution { /** * @param A: Sentence A * @param B: Sentence B * @return: Uncommon Words from Two Sentences */ public String[] uncommonFromSentences(String A, String B) { // Write your code here. String[] subA = A.split("\\s"); String[] subB = B.split("\\s"); Map<String, Integer> counter = new HashMap<>(); for (String a : subA) { Integer count = counter.get(a); if (count == null) { count = 0; } counter.put(a, count + 1); } for (String b : subB) { Integer count = counter.get(b); if (count == null) { count = 0; } counter.put(b, count + 1); } List<String> tRet = new ArrayList<>(); for (Map.Entry<String, Integer> row : counter.entrySet()) { if (row.getValue() == 1) { tRet.add(row.getKey()); } } String[] ret = new String[tRet.size()]; ret = tRet.toArray(ret); return ret; } }

    原题链接点这里

    鸣谢

    非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

    Processed: 0.010, SQL: 8