2017年9月4日19:00-20:30
由于是输入完成后一起输出,而不是输入一行、执行并输出一行结果,故在考试的时候理解错误,导致只有10%的通过,解题思路是正确的,理解存储处理数据有误,后理解正确后,时间不够(泪奔泪奔)
Python实现代码:
import sys
#美图公司编程题 2017/9/4
if __name__=="__main__":
myList2=[]
try:
while True:
line=sys.stdin.readline().strip()
if line == '':
break
myList2.append(list(map(str,(line).split(' '))))
except:
pass
#print("myList2:%s" %myList2)
for lens in xrange(len(myList2)):#计算n个数,算其重复子串的最大长度
maxLen=0
count=0
if(len(myList2[lens][0])>len(myList2[lens][1])):
str1=myList2[lens][0]
str2=myList2[lens][1]
else:
str2=myList2[lens][0]
str1=myList2[lens][1]
for i in xrange(len(myList2)):#最长字符串str1,获取其所有子串
for j in xrange(i+1,len(myList2)+1):
if(str2.find(str1[i:j])!=-1): #判断子串是否存在str2中
count=count+1 #公共子串数加1
if(maxLen<len(str1[i:j])): #取长度最长的子串长度
maxLen=len(str1[i:j])
print ("%d %d" %(count,maxLen))