欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java/888.两句话中不常见的单词

程序员文章站 2022-05-12 13:53:12
...

先上题目


Java/888.两句话中不常见的单词


 

代码部分

 

一、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;
    }
}

解析:

  1. 首先将句子中的单词提取出来,按"String-Integer"存入Map<>
  2. 循环Map<>,判断元素是否只出现一次及在另一句子中不存在,
  3. 符合存入List<>
  4. 将List<>转换为String[] ,函数返回
相关标签: 算法练习