LeetCode884-兩句話中的不常見單詞
阿新 • • 發佈:2020-11-27
非商業,LeetCode連結附上:
https://leetcode-cn.com/problems/uncommon-words-from-two-sentences/
進入正題。
題目:
給定兩個句子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都只包含空格和小寫字母。
程式碼實現:
public String[] uncommonFromSentences(String A, String B) { Map<String, Integer> count = new HashMap<>(); for (String word : A.split(" ")) { count.put(word, count.getOrDefault(word, 0) + 1); } for (String word : B.split(" ")) { count.put(word, count.getOrDefault(word, 0) + 1); } List<String> ans = new ArrayList<>(); for (String word : count.keySet()) { if (count.get(word) == 1) { ans.add(word); } } return ans.toArray(new String[ans.size()]);//列表轉陣列 } //時間複雜度O(m + n), m、n分別是A、B的長度 //空間複雜度O(m + n)
分析:
將兩個字串看成一個大的字串,其中只出現一次的單詞,即為目標物件。
準確的理解題目的意思,並首先進行簡化很重要。
--End