题目描述:
输入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