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 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.