• leetcode-884-两句话中的不常见单词


    题目描述:

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

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

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

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

     

    示例 1:

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

    示例 2:

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

     

    提示:

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

     

    要完成的函数:

    vector<string> uncommonFromSentences(string A, string B) 

    说明:

    1、做久了medium的题目,回过头来做一道新出的easy题,感觉真是十分畅爽啊。

    这道题给定两个字符串A和B,A和B中只包含空格和小写字母,要求找出在A中只出现一次并且在B中没有出现的单词,同时再找出在B中只出现一次并且在A中没有出现的单词。

    把这些单词插入到vector中,最终返回包含string格式的vector。

    2、其实考虑一下,就会发现这道题其实是要找只出现一次的单词。

    如果某个单词在A中出现了两次,那么不用返回。如果某个单词在B中出现了两次,也不用返回。

    如果某个单词在A中出现了一次,在B中出现了一次,那么也不用返回。

    所以我们需要返回的只是 只出现一次的单词。

    代码如下:(附详解)

        vector<string> uncommonFromSentences(string A, string B) 
        {
            unordered_map<string,int>m1;//定义成unordered_map不需要排序,更省时间
            vector<int>res;//最终要返回的vector
            int i=0,j=0;
            while(j<=A.size())//把A中每一个单词切分出来
            {
                if(A[j]==' '||A[j]=='')
                {
                    m1[A.substr(i,j-i)]++;//默认初始化为0,所以直接++就好
                    i=j+1;//i更新到j的下一位,也就是下一个单词的首位
                }
                j++;
            }
            i=0,j=0;
            while(j<=B.size())//同样操作,把B中每一个单词切分出来
            {
                if(B[j]==' '||B[j]=='')
                {
                    m1[B.substr(i,j-i)]++;
                    i=j+1;
                }
                j++;
            }
            for(auto iter=m1.begin();iter<m1.end();iter++)//遍历一遍map,看一下哪一个单词出现次数是1
            {
                if(iter->second==1)
                    res.push_back(iter->first);//把这个单词插入到vector中
            }
            return res;
        }

    上述代码实测0ms,beats 100.00% of cpp submissions。

  • 相关阅读:
    响应式一些知识
    自动显示git分支--安装oh-my-zsh(Ubuntu环境)
    一些感受吧
    vim 编辑器笔记
    gitlab 配置 ssh && ubuntu
    css3遇到的一些属性
    ajax 基础教程
    怎么查看浏览器内核
    简单理解锁
    测试项目注意项
  • 原文地址:https://www.cnblogs.com/chenjx85/p/9603744.html
Copyright © 2020-2023  润新知