题解 | #火车进站#

火车进站

http://www.nowcoder.com/practice/97ba57c35e9f4749826dc3befaeae109

import copy

class Node(object): def init(self,data = 0,front = None): self.data = data self.front = front

class duizhan(object): def init(self): self.__end = None

def ruzhan(self,data):
    node = Node(data)
    if self.__end == None:
        self.__end = node
    else:
        node.front = self.__end 
        self.__end = node
        
def chuzhan(self):
    if self.__end == None:
        return -1
    if self.__end.front == None:
        data = self.__end.data
        self.__end = None
        return data
    data = self.__end.data
    self.__end = self.__end.front 
    return data

def isempty(self):
    if self.__end == None:
        return True

def all_out(dz,chuzhan,ruzhan,n,yichuzhan,hc): if chuzhan == n and ruzhan == n: out.append(yichuzhan) #print(1) return if chuzhan != n: dz1 = copy.deepcopy(dz) a = dz1.chuzhan() if a != -1: ycz = copy.deepcopy(yichuzhan) ycz.append(a) all_out(dz1, chuzhan+1, ruzhan,n,ycz,hc)

if ruzhan != n:
    #print(ruzhan)
    ycz = copy.deepcopy(yichuzhan)
    dz2 = copy.deepcopy(dz)
    dz2.ruzhan(hc[ruzhan])
    all_out(dz2, chuzhan, ruzhan+1,n,ycz,hc)

global out out = [] n = int(input()) chuzhan,ruzhan = 0,0 hc = list(map(int,input().split())) dz = duizhan() yichuzhan = [] all_out(dz, chuzhan, ruzhan, n, yichuzhan, hc)

out = sorted(out) for items in out: print(*items)

全部评论

相关推荐

不知道怎么取名字_:28届都开始出来找机会了,看来哪里都卷
实习简历求拷打
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务