wanting-for
发表于 2020-1-25 18:24:40
def solve_313(list1:list):
B, i,length,first = ],1,0,0
while True:
if list1 == B:
i+=length
elif i+length>=len(list1):
for a in range(i,len(list1)):
if list1 == B[:len(list1)-a]:
first += 1
break
else:
B = list1[:a+1]
if first == 0:
return len(list1)
else:
return len(B)
else:
B,length = list1[:i+1],len(B)
i += 1
print(solve_313(+*10000))
楼主,我又来了,上次自闭了,这次换了方法,但是效率低,但是都是正确的,输入的数据,正是我这个算法的克星{:9_233:}
输入【1,2,3,4,5】+【1,2,3,4】*10000,大约执行6S,麻烦楼主帮忙测试一下,感谢了!
zltzlt
发表于 2020-1-25 18:30:16
wanting-for 发表于 2020-1-25 18:24
楼主,我又来了,上次自闭了,这次换了方法,但是效率低,但是都是正确的,输入的数据,正是我这个算法的 ...
一开始就错了
输入:
输出:4
预期结果:2
wanting-for
发表于 2020-1-25 18:40:48
zltzlt 发表于 2020-1-25 18:30
一开始就错了
输入:
def solve_313(list1:list):
B, i,length,first = ],1,0,0
while True:
if list1 == B:
i+=length
elif i+length>=len(list1):
for a in range(i,len(list1)):
if list1 == B[:len(list1)-a]:
first += 1
break
else:
B = list1[:a+1]
if first == len(list1)-i:
return len(B)
elif first == 0:
return len(list1)
else:
return len(B)
else:
B = list1[:i+1]
length = len(B)
i += 1
print(solve_313())
print('测试点1:',solve_313())
print('测试点2:',solve_313())
print('测试点3:',solve_313())
print('曾经错误的:',solve_313())
print('曾经错误的:',solve_313())
print('曾经错误的:',solve_313())
print('曾经错误的:',solve_313(+*10000))
以后我再乱改代码,我先给自己两巴掌{:5_96:}
zltzlt
发表于 2020-1-25 18:55:43
wanting-for 发表于 2020-1-25 18:40
以后我再乱改代码,我先给自己两巴掌
解答错误
输入:
输出:2
预期结果:1
wanting-for
发表于 2020-1-25 19:00:48
zltzlt 发表于 2020-1-25 18:55
解答错误
输入:
def solve_313(list1:list):
B, i,length,first = ],1,1,0
while True:
if list1 == B:
i+=length
elif i+length>=len(list1):
for a in range(i,len(list1)):
if list1 == B[:len(list1)-a]:
first += 1
break
else:
B = list1[:a+1]
if first == len(list1)-i:
return len(B)
elif first == 0:
return len(list1)
else:
return len(B)
else:
B = list1[:i+1]
length = len(B)
i += 1
print(solve_313())
print('测试点1:',solve_313())
print('测试点2:',solve_313())
print('测试点3:',solve_313())
print('曾经错误的:',solve_313())
print('曾经错误的:',solve_313())
print('曾经错误的:',solve_313())
print('曾经错误的:',solve_313(+*10000))
print(solve_313())
zltzlt
发表于 2020-1-25 19:03:22
wanting-for 发表于 2020-1-25 19:00
会超时哦
wanting-for
发表于 2020-1-25 19:22:48
zltzlt 发表于 2020-1-25 19:03
会超时哦
这个确实会有的,写的方法不怎么好,能通过就很高兴了,谢谢楼主不厌其烦的帮我测试!
zltzlt
发表于 2020-1-25 19:23:38
wanting-for 发表于 2020-1-25 19:22
这个确实会有的,写的方法不怎么好,能通过就很高兴了,谢谢楼主不厌其烦的帮我测试!
不用谢{:5_109:}新年快乐
776667
发表于 2021-4-2 10:54:37
本帖最后由 776667 于 2021-4-2 10:57 编辑
def fun313(x):
for i in range(1,len(x)):
if not len(x)%i:
if x == x[:i]*(len(x)//i):
return len(x[:i])
else:
if x[:len(x)-(len(x)%i)] == x[:i]*(len(x)//i):
if x == x[:i][:len(x)%i]:
return len(x[:i])
return len(x)