版权声明: https://blog.csdn.net/weixin_40550726/article/details/82824668
给定两个句子 A
和 B
。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
示例 1:
输入:A = "this apple is sweet", B = "this apple is sour" 输出:["sweet","sour"]
示例 2:
输入:A = "apple apple", B = "banana" 输出:["banana"]
提示:
0 <= A.length <= 200
0 <= B.length <= 200
A
和B
都只包含空格和小写字母。
思路:将A,B中的单词存入哈希表。
class Solution {
public String[] uncommonFromSentences(String A, String B) {
List<String> res=new LinkedList<String>();
Map<String,Integer> mapA=new HashMap<String,Integer>();
Map<String,Integer> mapB=new HashMap<String,Integer>();
String[] strA=A.split(" ");
String[] strB=B.split(" ");
for(String s:strA){
if(mapA.containsKey(s)){
mapA.put(s,mapA.get(s)+1);
}else{
mapA.put(s,1);
}
}
for(String s:strB){
if(mapB.containsKey(s)){
mapB.put(s,mapB.get(s)+1);
}else{
mapB.put(s,1);
}
}
for(String s:strA){
if(!mapB.containsKey(s)&&mapA.get(s)==1){
res.add(s);
}
}
for(String s:strB){
if(!mapA.containsKey(s)&&mapB.get(s)==1){
res.add(s);
}
}
int n=res.size();
String str[]=new String[n];
for(int i=0;i<n;i++){
str[i]=res.get(i);
}
return str;
}
}