问题描述: 有一摞烙饼,因为一只手端着盘子,所以只能用另外一只手来给烙饼排序,将烙饼由大到小排好序。这样就要求我们在给烙饼排序的时候总是将最上面的N个烙饼一起翻转。如果最下面的烙饼是最大的,那么只需要解决上面的N-1个烙饼,同理可以最后到解决两个烙饼的排序。
#! /usr/bin/python
# coding=utf-8
import random
def main():
arr = random.sample(xrange(100), 10)
print arr
n = []
while arr:
arr = reverse(arr)
n.insert(0,arr.pop())
print n
def reverse(arr):
if len(arr) == 1: return arr
maxint = max(arr)
maxindex = arr.index(maxint)
return arr[maxindex+1:][::-1] + arr[0:maxindex+1]
if __name__ == '__main__':
main()