java演算法題-兩句話中的不常見單詞

java演算法題-兩句話中的不常見單詞

給定兩個句子 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 都只包含空格和小寫字母。

這樣的題你會怎麼用java實現呢?

分享一下我的解題思路:

public String[] uncommonFromSentences(String A, String B) { String[] aArray = A。split(“ ”); String[] bArray = B。split(“ ”); Map map = new HashMap<>(); for (int i = 0, length = aArray。length; i < length; i++) { Integer num = map。get(aArray[i]); map。put(aArray[i], num == null ? 1 : (num + 1)); } for (int i = 0, length = bArray。length; i < length; i++) { Integer num = map。get(bArray[i]); map。put(bArray[i], num == null ? 1 : (num + 1)); } List result = new ArrayList<>(); for (Map。Entry entry : map。entrySet()) { String mapKey = entry。getKey(); Integer mapValue = entry。getValue(); if (mapValue == 1) { result。add(mapKey); } } return result。toArray(new String[]{}); }

結果:

輸入:“this apple is sweet” “this apple is sour”

輸出:[“sweet”,“sour”]

leetcode上對該答案的分析如下:

53 / 53

個透過測試用例

狀態:

透過

執行用時:

2 ms

, 在所有 Java 提交中擊敗了100。00%的使用者

記憶體消耗:

38.5 MB

, 在所有 Java 提交中擊敗了46。55%的使用者

執行用時分佈圖表

java演算法題-兩句話中的不常見單詞

執行消耗記憶體分佈圖表

java演算法題-兩句話中的不常見單詞

大家有更好的解題思路嗎?歡迎在評論區作答哈~