def get_res(lexicon, data):
'''
第一行是一个字符串数组,表示一组词库
第二行是一个文本,表示要检查的文本内容
想法:想划分最长的词语
问题:有一些情况无法被考虑到
'''
lexicon = sorted(lexicon, key=lambda x :len(x), reverse=False)
cur_data = data[:]
for word in lexicon:
if word in cur_data:
cur = cur_data.split(word)
cur_data = "".join(cur)
if len(cur_data) == 0:
return "true"
return "false"
def get_res2(lexicon, data):
n = len(data)
dp = [False for _ in range( n +1)]
dp[0] = True
lexicon = set(lexicon)
for i in range(1, n+ 1):
if data[i - 1] in lexicon:
dp[i] = True
else:
for j in range(i - 1, -1, -1):
if dp[j]:
if data[j:i] in lexicon:
dp[i] = True
if dp[n]:
return "true"
else:
return "false"
if __name__ == "__main__":
lexicon = input().split()
data = input()
res = get_res2(lexicon, data)
print(res)