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