給定兩個句子 a 和 b 。 (句子是一串由空格分隔的單詞。每個單詞僅由小寫字母組成。)
如果乙個單詞在其中乙個句子中只出現一次,在另乙個句子中卻沒有出現,那麼這個單詞就是不常見的。
返回所有不常用單詞的列表。
您可以按任何順序返回列表。
示例 1:
其實我們要注意審題,在乙個句子只出現一次,在另乙個句子沒有出現,這句話的意思不就是在兩個句子中都只出現一次。所以我們只要把兩個句子合併,找到唯一的單詞就可以。我一開始還傻乎乎的三重迴圈,兩個單獨判斷,特別傻。
知道如何做,這個題還有兩個難點:1、如何把字串分割成乙個個的單詞
2、雜湊的話如何找到乙個雜湊函式,用不同的座標表示不同的單詞,那種取模的只適用於數字,對於字串沒有意義。所以這裡用到了map這個stl庫里的只是。map,就可以把字串和數字對應起來。
字串分割我們可以手動分割,也可以用istringstream函式自動分割
手動分割:
class
solution
} string temp = str.
substr
(start,str.
size()
-start)
; res.
push_back
(temp)
; mapint> hash;
for(
int i =
0;isize()
;i++
) vector resa;
for(
auto it = hash.
begin()
;it != hash.
end(
);it++)}
return resa;}}
;
自動分割
class
solution
vector ans;
for(
auto it=cnt.
begin()
;it!=cnt.
end(
);it++
)return ans;}}
;istringstream物件可以繫結一行字串,然後以空格為分隔符把該行分隔開來。
884 兩句話中的不常見單詞
leetcode weekly contest 97的第一道題目,分值為3分。原題目要求如下 給定兩個句子 a 和 b 句子是一串由空格分隔的單詞。每個單詞僅由小寫字母組成。如果乙個單詞在其中乙個句子中只出現一次,在另乙個句子中卻沒有出現,那麼這個單詞就是不常見的。返回所有不常用單詞的列表。您可以按...
884 兩句話中的不常見單詞
給定兩個句子 a 和 b 句子是一串由空格分隔的單詞。每個單詞僅由小寫字母組成。如果乙個單詞在其中乙個句子中只出現一次,在另乙個句子中卻沒有出現,那麼這個單詞就是不常見的。返回所有不常用單詞的列表。您可以按任何順序返回列表。思路 利用split 將字串轉換成列表,合併兩個列表,如果元素只有1個,就是...
884 兩句話中的不常見單詞
給定兩個句子 a 和 b 句子是一串由空格分隔的單詞。每個單詞僅由小寫字母組成。如果乙個單詞在其中乙個句子中只出現一次,在另乙個句子中卻沒有出現,那麼這個單詞就是不常見的。返回所有不常用單詞的列表。您可以按任何順序返回列表。示例 1 示例 2 題意 返回只出現一次的單詞 用字典計數,返回值為1的單詞...