题目描述 两句话中的不常见单词
给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
示例 1:
输入:A = "this apple is sweet", B = "this apple is sour"
输出:["sweet","sour"]
示例 2:
输入:A = "apple apple", B = "banana"
输出:["banana"]
解题思路
hashset保存就好了 ,很easy.
代码
class Solution {
public:
vector<string> split(string str, map<string, int> &A){
stringstream ss(str);
string word;
vector<string> res;
while(ss >> word){
res.push_back(word);
A[word]++;
}
return res;
}
vector<string> uncommonFromSentences(string A, string B) {
vector<string> res;
map<string, int> hashA, hashB;
vector<string> strA = split(A, hashA);
vector<string> strB = split(B, hashB);
for(auto s:strA){
if(hashA[s]==1 && hashB.count(s)<=0) res.push_back(s);
}
for(auto s:strB){
if(hashB[s]==1 && hashA.count(s)<=0) res.push_back(s);
}
return res;
}
};