Java/888.两句话中不常见的单词
程序员文章站
2022-05-12 13:53:12
...
先上题目
代码部分
一、9ms
class Solution {
public String[] uncommonFromSentences(String A, String B) {
String[] splitA = A.split(" ");
String[] splitB = B.split(" ");
Map<String,Integer> A_wor = new HashMap<>();
Map<String,Integer> B_wor = new HashMap<>();
List<String> result = new ArrayList<>();
//循环字符数组,将其存入Map(关键字为单词)
for(String temp: splitA){
A_wor.put(temp, A_wor.getOrDefault(temp,0)+1);
}
for(String temp: splitB){
B_wor.put(temp,B_wor.getOrDefault(temp,0)+1);
}
//若单词符合条件,存入List
for(String temp: A_wor.keySet()){
if(A_wor.get(temp) == 1 && !B_wor.containsKey(temp)){
result.add(temp);
}
}
for(String temp: B_wor.keySet()){
if(B_wor.get(temp) == 1 && !A_wor.containsKey(temp)){
result.add(temp);
}
}
//List<>转换String[]
String[] res = result.toArray(new String[result.size()]);
return res;
}
}
解析:
- 首先将句子中的单词提取出来,按"String-Integer"存入Map<>
- 循环Map<>,判断元素是否只出现一次及在另一句子中不存在,
- 符合存入List<>
- 将List<>转换为String[] ,函数返回
上一篇: 1.2 什么是操作系统
下一篇: 单词的压缩编码(字典树)
推荐阅读