2024-09-29 20:24:37 发布
网友
假设你可以倒转到列表的另一边,Pacman风格,你如何找到列表中字母之间的最短路径
letters = ['a', 'd', 'e', 'l', 's'] letters.loopDistance('a', 's')
返回1
返回2
找到向前的距离(如有必要,可绕开)。如果这个长度超过列表长度的一半,那么往另一个方向移动会涉及到一个较短的距离,您可以通过从列表长度中减去该距离来立即进行计算。在
如果这些字母可以出现不止一次,事情就更复杂了,主要是因为你想要的答案模棱两可。在
def distance(l, first, second): ifirst = l.index(first) isecond = l.index(second) return min((ifirst - isecond) % len(l), (isecond - ifirst) % len(l))
基本上,你测量两个方向的距离,然后选择最小的。在
找到向前的距离(如有必要,可绕开)。如果这个长度超过列表长度的一半,那么往另一个方向移动会涉及到一个较短的距离,您可以通过从列表长度中减去该距离来立即进行计算。在
如果这些字母可以出现不止一次,事情就更复杂了,主要是因为你想要的答案模棱两可。在
基本上,你测量两个方向的距离,然后选择最小的。在
相关问题 更多 >
编程相关推荐