【发布时间】:2021-05-19 17:20:49
【问题描述】:
我在尝试解决给定一些字符串及其长度的问题时遇到了一个问题,您需要找到它们的公共子字符串。我的代码循环遍历列表,然后每个单词遍历其中的每个单词是这样的:
num_of_cases = int(input())
for i in range(1, num_of_cases+1):
if __name__ == '__main__':
len_of_str = list(map(int, input().split()))
len_of_virus = int(input())
strings = []
def string(strings, len_of_str):
len_of_list = len(len_of_str)
for i in range(1, len_of_list+1):
strings.append(input())
lst_of_subs = []
virus_index = []
def substr(strings, len_of_virus):
for word in strings:
for i in range(len(len_of_str)):
leng = word[i:len_of_virus]
lst_of_subs.append(leng)
virus_index.append(i)
print(string(strings, len_of_str))
print(substr(strings, len_of_virus))
给定字符串,它会打印以下内容:ananasso、associazione、tassonomia、massone
['anan', 'nan', 'an', 'n', 'asso', 'sso', 'so', 'o', 'tass', 'ass', 'ss', 's', 'mass', 'ass', 'ss', 's']
似乎结束索引没有增加,虽然我尝试在循环结束时写len_of_virus += 1。
样本输入:
1
8 12 10 7
4
ananasso
associazione
tassonomia
massone
其中第一个字母是病例数,第二行是字符串的名称,第三个是病毒的长度(公共子字符串),然后是我应该循环遍历的给定字符串。
预期输出:
Case #1: 4 0 1 1
其中四个数字是公共子字符串的起始索引。(我不认为打印代码关心我们这个特殊问题)
我该怎么办?请帮忙!!
【问题讨论】:
-
好吧,我决定不放函数头,这会影响输出吗?输入是:
8 12 10 7 4 ananasso associazione tassonomia massone它应该打印出公共子字符串 'asso' 以及它在列表的每个字符串中的起始索引(前 4 个数字是列表中的字符串,第 5 个数字是病毒的长度,也就是公共子字符串,四个字符串是我必须循环的) -
我编辑了帖子并添加了 func 标题
-
病毒在问题陈述中,它说每个字符串中都有一个病毒(一个子字符串),并且每个字符串中的长度相同。我的任务是找到该病毒(每个字符串中的公共子字符串并打印出每个字符串中的起始索引)
-
好的,谢谢。我找到了problem statement(第 5 页)
-
是的,我想就是这样,虽然我找到的链接是this
标签: python python-3.x algorithm substring python-3.8