假设我们有一个长度为2的字符串s,并且还有一个单词w的列表,其中所有单词的长度均为2。我们必须检查是否可以将w中的单词串联起来,并且串联后的字符串包含s作为子字符串。
因此,如果输入像s =“ no”,w = [“ ol”,“ on”,“ ni”,“ to”],则输出将为True,因为我们可以连接诸如“ onol”之类的字符串,包含“否”
为了解决这个问题,我们将遵循以下步骤-
n:= w中的单词数
char_0:= False,char_1:= False
对于范围在0到n-1之间的i
返回True
char_1:=真
char_0:=真
返回True
如果w [i]与s相同,则
如果s [0]与w [i,1]相同,则
如果s [1]与w [i,0]相同,则
如果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