缺少的字符串

给出两个字符串,你需要找到缺少的字符串

样例

样例 1:

输入 : str1 = "This is an example", str2 = "is example"
输出 : ["This", "an"]

注意事项

输出时字符串顺序为输入字符串内的顺序

 

class Solution {
public:
    /**
     * @param str1: a given string
     * @param str2: another given string
     * @return: An array of missing string
     */
    vector<string> missingString(string &str1, string &str2) {
        // Write your code here
        vector<string> ret;
        vector<string> copy;
        unordered_map<string, int> mymap1;
        string tmp = "";
        for(int i = 0; i < str1.size(); i++)
        {
            
            if(str1[i] == ' ')
            {
                mymap1[tmp]++;
                copy.push_back(tmp);
                tmp  = "";
            }
            else
            {
                tmp = tmp + str1[i];
                if(i == str1.size() - 1)
                {
                    mymap1[tmp]++;
                    copy.push_back(tmp);
                }
            }
        }
        
        tmp = "";
        for(int i = 0; i < str2.size(); i++)
        {
            if(str2[i] == ' ')
            {
                //mymap2[tmp]++;
                mymap1.erase(tmp);
                tmp  = "";
            }
            else
            {
                tmp = tmp + str2[i];
                if(i == str2.size() - 1)
                {
                    //mymap2[tmp]++;
                    mymap1.erase(tmp);
                }
            }
        }
        
        for(int i = 0; i < copy.size(); i++)
        {
            if(mymap1[copy[i]] >= 1)
                 ret.push_back(copy[i]);
        }
        return ret;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值