乐趣区

leetcode讲解–884. Uncommon Words from Two Sentences

题目
We are given two sentences A and B. (A sentence is a string of space separated words. Each word consists only of lowercase letters.)
A word is uncommon if it appears exactly once in one of the sentences, and does not appear in the other sentence.
Return a list of all uncommon words.
You may return the list in any order.
Example 1:
Input: A = “this apple is sweet”, B = “this apple is sour”
Output: [“sweet”,”sour”]
Example 2:
Input: A = “apple apple”, B = “banana”
Output: [“banana”]
Note:

0 <= A.length <= 200
0 <= B.length <= 200

A and B both contain only spaces and lowercase letters.

题目地址
讲解
用 hashmap 记录每一个单词
Java 代码
class Solution {
private Map<String, Integer> map = new HashMap<>();
public String[] uncommonFromSentences(String A, String B) {
List<String> result = new ArrayList<>();
countString(A);
countString(B);
for(String key:map.keySet()){
if(map.get(key)==1){
result.add(key);
}
}
String[] str = new String[result.size()];
return result.toArray(str);
}

private void countString(String A){
int index=0;
for(int i=0;i<A.length();i++){
if(A.charAt(i)==’ ‘){
Integer count = map.get(A.substring(index, i));
if(count==null){
map.put(A.substring(index, i), 1);
}else{
map.put(A.substring(index, i), count+1);
}
if(i+1<A.length()){
index = i+1;
}
}else if(i==A.length()-1){
Integer count = map.get(A.substring(index));
if(count==null){
map.put(A.substring(index), 1);
}else{
map.put(A.substring(index), count+1);
}
}
}
}
}

退出移动版