题解 | #火车进站#

火车进站

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

利用“进出”操作的排列

while True:
	try:
		n = int(input())
		trains = input().split()
		perm = [[] for _ in range(n+1)]
		perm[1] = ['ab']

		for i in range(2, n+1):
			for x in perm[i-1]:
				for j in range(len(x)):
					sub = list(x)
					sub.insert(j, 'a')
					sub.insert(j+1, 'b')
					sub = ''.join(sub)
					if not sub in perm[i]:
						perm[i].append(sub)

		res = []
		for pe in perm[n]:
			stack = []
			t = 0
			out = ''
			for c in pe:
				if c == 'a':
					stack.append(trains[t])
					t += 1
				else:
					out += stack.pop()
			res.append(out)
		res.sort()
		res = [' '.join(list(r)) for r in res]
		for r in res:
			print(r)
	except:
		break
全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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