使用 Python 检查是否可以使用给定的单词组成一个双字符字符串


假设我们有一个长度为 2 的字符串 s,还有一个单词列表 w,其中所有单词的长度都为 2。我们需要检查是否可以连接 w 中的单词,并且连接后的字符串是否包含 s 作为子字符串。

所以,如果输入像 s = "no",w = ["ol", "on", "ni", "to"],那么输出将是 True,因为我们可以连接像 "onol" 这样的字符串,其中包含 "no"

为了解决这个问题,我们将遵循以下步骤:

  • n := w 中单词的数量
  • char_0 := False,char_1 := False
  • 对于 i 从 0 到 n - 1,执行:
    • 如果 w[i] 与 s 相同,则:
      • 返回 True
    • 如果 s[0] 与 w[i, 1] 相同,则:
      • char_0 := True
    • 如果 s[1] 与 w[i, 0] 相同,则:
      • char_1 := True
    • 如果 char_0 和 char_1 都为真,则:
      • 返回 True
  • 返回 False

让我们看看下面的实现,以便更好地理解:

示例

 实时演示

def solve(s, w):
   n = len(w)
   char_0 = False
   char_1 = False
   for i in range(n):
      if w[i] == s:
         return True
      if s[0] == w[i][1]:
         char_0 = True
      if s[1] == w[i][0]:
         char_1 = True
      if char_0 and char_1:
         return True
   return False
s = "no"
w = ["ol", "on", "ni", "to"]
print(solve(s, w))

输入

"no", ["ol", "on", "ni", "to"]

输出

True

更新于: 2020-12-29

106 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告