使用 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
- 如果 w[i] 与 s 相同,则:
- 返回 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
广告