【发布时间】:2015-07-17 02:09:39
【问题描述】:
大家好,我有这个功能,但是当我测试它时它给了我错误。 有没有人对如何解决它有任何想法 这是我的练习。请仔细阅读。
编写一个函数cycleLength(array),它返回形成一个循环的学生人数,假设你从与最左边的人交谈开始。输入数组是一个非负整数列表,因此 array[m] 是学生 m 重定向到的学生的编号。没有学生重定向到自己。最左边的学生是 0 号,下一个是 1 号,依此类推。列表中的每个元素都在 [0, n-1] 范围内,其中 n 是列表的长度。 例如,假设列表是 [1, 3, 0, 1]。然后学生 0 重定向到学生 1,学生 1 重定向到学生 3,学生 3 重定向回学生 1。有两个学生的循环:1、3。因此答案是 2。请注意,即使您从学生 0 开始,他不是循环的一部分。 这是我的功能:
def cycleLength(m):
lst = []
i = 0
while i not in lst:
lst.append(i)
i = int(m[i])
b = len(lst) - lst.index(i)
return b
【问题讨论】:
-
如果有多个不同尺寸的循环怎么办?
-
你忘记了循环末尾的
i += 1;) -
错误是什么?请edit 您的问题在问题本身中包含错误或回溯的完整文本,而不是在 cmets 中。还请给出示例输入、预期输出和您得到的实际输出。我们不是读心者,你必须告诉我们哪里出了问题。
标签: python list function python-2.7 cycle