856 句子相似性

2022-02-14 19:07:24 字數 2561 閱讀 5992

中文english

給出兩個句子words1words2(每個用乙個字串陣列表示),和乙個相似詞對陣列pairs,你需要判斷兩個句子是否相似。

例如,如果相似詞對是pairs = [["great", "fine"], ["acting","drama"], ["skills","talent"]],那麼words1 = great acting skillswords2 = 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]範圍內。

class

solution:

""" @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,則再從後向...