我正在解决一个有时间和内存限制的问题,不幸的是,这没有满足时间限制。在
我对Python相当陌生,所以对于更快/更好方法的任何反馈都是非常感谢的。在
这就是程序试图解决的问题:
将两个字符串A&B的相似性定义为它们共享的最长公共前缀的长度。i、 AAAB与AABCAAAB的相似性为2。在
程序应该输出输入字符串及其所有后缀的相似性之和。i、 对于AAAB,它应该输出
相似性(AAAB,AAAB)+相似性(AAAB,AAB)+相似性(AAAB,AB)+相似性(AAAB,B)=4+2+1+0=7
输入的第一行是要输入的字符串数,随后的每一行都包含一个要处理的字符串。在from array import array
n = int(sys.stdin.readline())
A = [0] * n #List of answers
for i in range(1,n+1):
string = sys.stdin.readline().strip()
A[i-1] = len(string)
for j in range(1, len(string)):
substr = string[j:len(string)]
sum = 0
for k in range(0, len(substr)):
if substr[k] != string[k]:
break
else:
sum += 1
A[i-1] += sum
for i,d in enumerate(A):
print d