当前位置:  开发笔记 > 编程语言 > 正文

排列,但有一些数字保持在一个顺序

如何解决《排列,但有一些数字保持在一个顺序》经验,为你挑选了0个好方法。

好的,我已经浏览了一下,我已经找到了解决这个问题的C或python解决方案.我更喜欢python ...虽然它是我较弱的语言(2种非常弱的语言).

一组数字,例如0 0 1 7 0 0 3 0 0 4

    找到集合的所有排列.

    数字> 0必须保持该顺序(不是位置!)

    数字之间必须有0,但在集合的开头和结尾不需要0.只要数字> 0之间至少有一个0.

首先,我想到找到所有可能的排列然后去除每个排列的箔条(检查n> 0,!n + 1> 0),然后第一个数字> 0 == 1,第二个#> 0 = = 7等

然后我停下来,认为这是愚蠢的,说有12个数字,这将给12!排列.这是500,000,000排列的顺序,我将不得不再次通过以摆脱箔条.

假设我有40到50套这些数字套装可以通过,这是一个公平的时间.

有更合乎逻辑的方式吗?我想到某种方式让python做排列以某种方式考虑这些规则(如果n> 0,n + 1必须== 0)和(n =第一个数字,n2 =第2个等)

一个较小的集合的例子是(不是所有的PERMUTATIONS,但给出了想法):

1,2,3,0,0,0,0,0

    1,0,2,0,3,0,0,0

    0,1,0,2,0,3,0,0

    0,0,1,0,2,0,3,0

    0,0,1,0,0,2,0,3

    0,1,0,0,2,0,3,0

所以1,2,3是有序的,但是"0"只是左右移动了?

谢谢!

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有