例题描述
给定两个句子 A
和 B
。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
示例1:
- 输入:
A = "this apple is sweet", B = "this apple is sour"
- 输出:
["sweet","sour"]
示例 2:
- 输入:
A = "apple apple", B = "banana"
- 输出:
["banana"]
解题思路
合并两字符串,删除重复单词即可。
代码实现
class Solution {
public:
vector<string> uncommonFromSentences(string A, string B) {
unordered_map<string,int> m;
vector<string> ret;
string temp;
//将合并后字符串中所有单词放入 map 容器
string C = A + " " + B + " ";
for(int i = 0;i < C.size();++i){
if(C[i] != ' ') temp += C[i];
else {
m[temp]++;
temp.clear();
}
}
//进行处理 <key,value>
for(auto i = m.begin();i != m.end();++i){
if(i->second == 1){
ret.push_back(i->first);
}
}
return ret;
}
};
链接:https://leetcode-cn.com/problems/uncommon-words-from-two-sentences/