python 火车进站-即数的全排列问题

来源:互联网 发布:网络文明主题班会教案 编辑:程序博客网 时间:2024/05/24 06:49

火车进站-即数的全排列问题

给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。输入描述:有多组测试用例,每一组第一行输入一个正整数N(0<N<10),第二行包括N个正整数,范围为1到9。输出描述:输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,具体见      sample。输入示例:  3  1 2 3输出示例:1 2 31 3 22 1 32 3 13 1 23 2 1

代码

#! usr/bin/env python# -*- coding: utf-8 -*-list1=[]list2=[]list3=[]print "Enter the number of items"i=input()for j in range(i):    k=input()    if k<0 or k>10:        print "erro"        break    else:        list1.append(k)def pl(s):    if len(s)<1:        #print s,len(s)        yield s     else:        for x in pl(s[1:]): #分片            for y in range(len(s)):                yield x[:y]+s[0:1]+x[y:]list2=pl(list1)list3=sorted(list2,reverse=False)#按字典序排序#循环输出for m in list3:    print m

结果

*说明:python 好像不支持空格式连续输入
它的循环输出也最好是一个列表或远组
yield的资料看的不是很懂,望大牛可以解释
这里递归好像是以一种后根遍历的调用*

这里写图片描述

0 0
原创粉丝点击