我需要为学校完成此代码 程序应该在列表中找到序列拆分的索引。 例如,对于像这样的列表的输入
[66, 81, 83, 96, 13, 19, 30, 41, 44, 57]
正确的输出应为4(序列中断的数字索引 - 96)
我的函数能够找到拆分,但我不知道如何返回该拆分的索引。它总是返回错误答案。
这是我的代码:
def findSplit( list ):
if len(list)%2 == 0:
if list[(len(list)//2)-1] == list[0]:
return 1
elif list[(len(list)//2)-1]<list[0]:
return findSplit(list[:(len(list)//2)]) - len(list)//2
elif list[(len(list)//2)-1]>list[0]:
return findSplit(list[(len(list)//2)-1:]) + len(list)//2
elif len(list)%2 != 0:
if list[(len(list)//2)]<list[0]:
return findSplit(list[:(len(list)//2)+1]) - len(list)//2
elif list[(len(list)//2)]>list[0]:
return findSplit(list[(len(list)//2):]) + len(list)//2
if __name__ == "__main__":
list = [ 66, 81, 83, 96, 13, 19, 30, 41, 44, 57 ]
line = input().strip().split()
if line != []:
list = []
for x in line:
list.append( int( x ) )
print(findSplit( list ))