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

题目

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

题目大意

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

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

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

样例

image-20220130133856649

数据规模

image-20220130133919002

思路1

考虑将 s 1 , s 2 s1,s2 s1,s2中的所有字符串统计一遍,只有数量为 1 1 1的加入vector<string>中。 考虑如何分解 s 1 , s 2 s1,s2 s1,s2中的字符串?可以使用stringstream进行分解。定义一个stringstream ss1,然后将 s 1 s1 s1导入到 s s 1 ss1 ss1,即ss1<<s1,然后每次将字符串存储到 a a a中,即ss1>>a,然后可以选择情况 s s 1 ss1 ss1,即ss1.clear(),或者重新定义一个 s s 2 ss2 ss2。然后顺序遍历unordered_map<string,int>mp中的所有元素即可。

代码1

class Solution {
public:
    vector<string> uncommonFromSentences(string s1, string s2) {
        unordered_map<string,int>mp;
        stringstream ss1,ss2;
        ss1<<s1;
        string a;
        while(ss1>>a){
            mp[a]++;
        }
        ss2<<s2;
        while(ss2>>a){
            mp[a]++;
        }
        vector<string>ans;
        for(auto it:mp){
            if(it.second==1){
                ans.push_back(it.first);
            }
        }
        return ans;
    }
};

思路2

使用python语言可以更方便的读入。

然后将 l i s t   a list \ a list a转换为 C o u n t e r Counter Counter,这样就可以知道每个字符串的数量。

代码2

class Solution:
    def uncommonFromSentences(self, s1: str, s2: str) -> List[str]:
        a=s1.split(" ")
        a+=s2.split(" ")
        a=Counter(a)
        ans=[]
        for it,num in a.items():
            if num==1:
                ans.append(it)
        return ans
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phoenix_ZengHao

创作不易,能否打赏一瓶饮料?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值