中文english
給出兩個句子words1
和words2
(每個用乙個字串陣列表示),和乙個相似詞對陣列pairs
,你需要判斷兩個句子是否相似。
例如,如果相似詞對是pairs = [["great", "fine"], ["acting","drama"], ["skills","talent"]]
,那麼words1 = great acting skills
和words2 = fine drama talent
是相似的。
需要注意,相似關係是不可傳遞的。例如,如果"great"和"fine"相似,"fine"和"good"相似,"great"和"good"不是一定相似的。
然而,相似性是對稱的。例如,"great"和"fine"相似,則"fine"和"great"也是相似的,這兩者是等價的。
另外,乙個單詞永遠與它本身相似。例如,句子words1 = ["great"], words2 = ["great"], pairs =
是相似的,儘管沒有相似詞對。
最後,兩個句子只有在單詞數相等的情況下才可能相似。所以,句子words1 = ["great"]
永遠不可能與句子words2 = ["doubleplus","good"]
相似。
樣例1
輸入: words1 = ["great","acting","skills"], words2 = ["fine","drama","talent"] and pairs = [["great","fine"],["drama","acting"],["skills","talent"]]
輸出: true
解釋:"great"和"fine"相似
"acting"和"drama"相似
"skills"和"talent"相似
樣例2
輸入: words1 = ["fine","skills","acting"], words2 = ["fine","drama","talent"] and pairs = [["great","fine"],["drama","acting"],["skills","talent"]]
輸出: false
解釋:"fine"和"fine"相同
"skills"和"drama"不相似
"acting"和"talent"不相似
words1和words2的長度不會超過1000。
pairs的長度不會超過2000。
每乙個pairs[i]的長度是2。
每乙個words[i]和pairs[i][j]的長度在[1, 20]範圍內。
classsolution:
""" @param words1: a list of string
@param words2: a list of
string
@param pairs: a list of
string
pairs
@return:
return
a boolean, denote whether two sentences are similar or not
"""def issentencesimilarity(self, words1, words2, pairs):
# write your code here
len1, len2 =len(words1), len(words2)
if len1 != len2: return
false
#生成字典
pairs_dict ={}
for pair in
pairs:
if pair[0] not in
pairs_dict:
pairs_dict[pair[
0]] = [pair[1
]]
else
: pairs_dict[pair[
])
if pair[1] not in
pairs_dict:
pairs_dict[pair[
1]] = [pair[0
]]
else
: pairs_dict[pair[
])
#判斷for i in
range(len1):
if words1[i] ==words2[i]:
continue
if words2[i] in
pairs_dict[words1[i]]:
continue
if words1[i] in
pairs_dict[words2[i]]:
continue
return
false
return true
lintcode856 句子相似性
給出兩個句子words1和words2 每個用乙個字串陣列表示 和乙個相似詞對陣列pairs,你需要判斷兩個句子是否相似。例如,如果相似詞對是pairs great fine acting drama skills talent 那麼words1 great acting skills和words2...
734 句子相似性
題目描述 給定兩個句子 words1,words2 每個用字串陣列表示 和乙個相似單詞對的列表 pairs 判斷是否兩個句子是相似的。例如,當相似單詞對是 pairs great fine acting drama skills talent 的時候,great acting skills 和 fi...
1813 句子相似性 III
先把每個句子分成乙個個單詞 然後比較即可,設定flag1 flag2,如果第一次出現不一樣flag 1,之後若一樣flag2 1,若再次不一樣,同時若flag2 1,就是false 如果到最後短的句子沒遍歷到尾,則false 有a a a a a a a a情形 如果從前向後比false,則再從後向...