首页 > 编程语言 >【从零开始的LeetCode-算法】884. 两句话中的不常见单词

【从零开始的LeetCode-算法】884. 两句话中的不常见单词

时间:2024-10-22 18:17:42浏览次数:23  
标签:map String 884 s2 s1 单词 从零开始 res LeetCode

句子 是一串由空格分隔的单词。每个 单词 仅由小写字母组成。

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

给你两个 句子 s1 和 s2 ,返回所有 不常用单词 的列表。返回列表中单词可以按 任意顺序 组织。

示例 1:

输入:s1 = "this apple is sweet", s2 = "this apple is sour"
输出:["sweet","sour"]

示例 2:

输入:s1 = "apple apple", s2 = "banana"
输出:["banana"]

提示:

  • 1 <= s1.length, s2.length <= 200
  • s1 和 s2 由小写英文字母和空格组成
  • s1 和 s2 都不含前导或尾随空格
  • s1 和 s2 中的所有单词间均由单个空格分隔

我的解答:

class Solution {
    public String[] uncommonFromSentences(String s1, String s2) {
        String[] str1 = s1.split(" "), str2 = s2.split(" ");
        Map<String,Integer> map = new HashMap<String,Integer>();
        List<String> res = new ArrayList<String>();

        // 将分割好的字符串数组插入map中,计算其元素出现的次数
        for(String s : str1){
            map.put(s, map.getOrDefault(s,0) + 1);
        }
        for(String s : str2){
            map.put(s, map.getOrDefault(s,0) + 1);
        }

        for(String s : map.keySet()){
            // 只记录出现次数为1的单词,加入res列表中
            if(map.get(s) == 1){
                res.add(s);
            }
        }

        return res.toArray(new String[0]);
    }
}

 

 

标签:map,String,884,s2,s1,单词,从零开始,res,LeetCode
From: https://blog.csdn.net/qq_40878316/article/details/143126386

相关文章

  • 【LeetCode】动态规划—790. 多米诺和托米诺平铺(附完整Python/C++代码)
    动态规划—790.多米诺和托米诺平铺题目描述前言基本思路1.定义2.理解问题和递推关系3.解决方法4.进一步优化5.小总结代码实现Python代码Python代码解释总结C++代码C++代码解释总结总结题目描述前言本文将详细讨论LeetCode上的"多米诺和三米诺平铺"问题。......
  • LeetCode题练习与总结:区间和的个数--327
    一、题目描述给你一个整数数组 nums 以及两个整数 lower 和 upper 。求数组中,值位于范围 [lower,upper] (包含 lower 和 upper)之内的 区间和的个数 。区间和 S(i,j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。示例1:输入......