领扣LintCode算法问题答案-1598. 两句话中的不常见单词
目录
1598. 两句话中的不常见单词描述样例 1:样例 2:
题解鸣谢
1598. 两句话中的不常见单词
描述
给定两个句子 A 和 B 。 (句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)
如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。
返回所有不常用单词的列表。
您可以按任何顺序返回列表。
0 <= A.length <= 2000 <= B.length <= 200A 和 B 都只包含空格和小写字母。
样例 1:
输入:A = "this apple is sweet", B = "this apple is sour"
输出:["sweet","sour"]
样例 2:
输入:A = "apple apple", B = "banana"
输出:["banana"]
题解
public class Solution {
public String
[] uncommonFromSentences(String A
, String B
) {
String
[] subA
= A
.split("\\s");
String
[] subB
= B
.split("\\s");
Map
<String, Integer> counter
= new HashMap<>();
for (String a
: subA
) {
Integer count
= counter
.get(a
);
if (count
== null
) {
count
= 0;
}
counter
.put(a
, count
+ 1);
}
for (String b
: subB
) {
Integer count
= counter
.get(b
);
if (count
== null
) {
count
= 0;
}
counter
.put(b
, count
+ 1);
}
List
<String> tRet
= new ArrayList<>();
for (Map
.Entry
<String, Integer> row
: counter
.entrySet()) {
if (row
.getValue() == 1) {
tRet
.add(row
.getKey());
}
}
String
[] ret
= new String[tRet
.size()];
ret
= tRet
.toArray(ret
);
return ret
;
}
}
原题链接点这里
鸣谢
非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。 欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。