题目描述:
思路:方法一:
使用哈希表遍历两遍来查找;
方法二:
把两个字符串合并成一个字符串,找到出现一次的单词
class Solution {
public:
vector<string> uncommonFromSentences(string A, string B) {
A+=" ";
B+=" ";
map<string,int>cnt;
map<string,int>num;
vector<string>words;
vector<string>words2;
vector<string>cur;
vector<string>cur2;
vector<string>res;
string letter="";
for(int i=0;i<A.size();i++){
if(A[i]!=' '){
letter+=A[i];
}
else {
cnt[letter]++;
words.push_back(letter);
letter="";}
}
for(int i=0;i<words.size();i++){
if(cnt[words[i]]==1)
cur.push_back(words[i]);
}
letter="";
for(int i=0;i<B.size();i++){
if(B[i]!=' '){
letter+=B[i];
}
else {
num[letter]++;
words2.push_back(letter);
letter="";}
}
for(int i=0;i<words2.size();i++){
if(num[words2[i]]==1)
cur2.push_back(words2[i]);
}
for(int i=0;i<cur.size();i++){
if(num[cur[i]]==0)
res.push_back(cur[i]);
}
for(int i=0;i<cur2.size();i++){
if(cnt[cur2[i]]==0)
res.push_back(cur2[i]);
}
return res;
}
};
class Solution {
public:
vector<string> uncommonFromSentences(string A, string B) {
A+=" ";
string C=A+B;
C+=" ";
map<string,int>cnt;
vector<string>words;
vector<string>res;
string letter="";
for(int i=0;i<C.size();i++){
if(C[i]!=' '){
letter+=C[i];
}
else {
cnt[letter]++;
words.push_back(letter);
letter="";}
}
for(int i=0;i<words.size();i++){
if(cnt[words[i]]==1)
res.push_back(words[i]);
}
return res;
}
};