题目描述:
输入n个字符串(1<=n<=3*102,字符串总长度不超过103,只包含小写字母)
后面多次查询,每次查询输入两个数字x,y,输出第x个字符串和第y个字符串的最长公共前缀长度。(查询次数不超过102)
输入描述:
第1行输入一个整数n,代表字符串数量;
第2~n+1行,每行一个字符串;
第n+2行开始,每行输入两个整数a和b,代表需要计算公共前缀的字符串编号。
输出描述:
每次查询输出一行一个整数,表示两个字符串的最长公共前缀的长度
示例1
输入
2
abc
abe
1 2
输出
2
def longest(a,b):
res=0
for i in zip(list1[a],list1[b]): #打包函数
if len(set(i))==1:
res +=1
else:
break
return res
n=eval(input())
list1=list()
for r in range(1,n+1): #输入字符串n条
q=input().split() #对字符串进行切片 str.split(str="", num=string.count(str))
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num -- 分割次数。默认为 -1, 即分隔所有。
list1=list1+q
while True: #以下代码针对不定输入
try:
a,b = map(int,input().split())
print(longest(a-1,b-1))
except:
break 


京公网安备 11010502036488号