Python 判斷兩個句子是否相似


假設我們有兩個句子 s 和 t。我們必須檢查它們是否相似。這裡句子只包含英文字母。當可以透過在一個給定句子中新增任意句子(可能為空)使兩個句子相等時,這兩個句子就被認為是相似的。

因此,如果輸入類似於 s = "we live at city Kolkata" t = "city Kolkata",則輸出將為 True,因為我們可以透過新增句子 "we live in" 從 t 獲得 s。

為了解決這個問題,我們將遵循以下步驟:

  • s1 := s 中單詞的列表

  • s2 := t 中單詞的列表

  • 如果 s1 的大小 > s2 的大小,則

    • 交換 s1 和 s2

  • 當 s1 不為空時,執行以下操作:

    • 如果 s2[0] 與 s1[0] 相同,則

      • 從 s2 中刪除第一個單詞

      • 從 s1 中刪除第一個單詞

    • 否則,如果 s2 的最後一個單詞與 s1 的最後一個單詞相同,則

      • 從 s2 中刪除最後一個單詞

      • 從 s1 中刪除最後一個單詞

    • 否則,

      • 返回 false

  • 返回 true

示例

讓我們看看下面的實現,以便更好地理解:

def solve(s, t):
   s1 = s.split()
   s2 = t.split()
   if len(s1) > len(s2):
      s1,s2 = s2,s1
   while(s1):
      if(s2[0]==s1[0]):
         s2.pop(0)
         s1.pop(0)
      elif(s2[-1]==s1[-1]):
         s2.pop()
         s1.pop()
      else:
         return(False)
   return(True)

s = "we live at city Kolkata"
t = "city Kolkata"
print(solve(s, t))

輸入

"we live at city Kolkata", "city Kolkata"

輸出

True

更新於:2021年10月7日

951 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告