【发布时间】:2017-04-25 02:47:32
【问题描述】:
这个问题与我的问题here 有关。我正在尝试以编程方式获得以下计数,以验证我的数学是否正确。
单词PQRDDDEEEEFFFFF中的字母有多少排列 没有连续的字母相同?
如何使用 php 程序确定此计数?
我的方法
- 使用堆的算法生成所有可能的排列并存储在一个数组中(使用堆的算法,因为它被发现更快)
- 使用 array_unique 函数删除了所有重复项
- 遍历数组,使用正则表达式 /(.)\1/ 识别相邻字母相同的字符串,并将没有相邻字母相同的字符串复制到新数组。
- 新数组包含所需的元素列表。
我的方法运行良好。但是,对于较大的字符串(超过 10 个字符的字符串),由于排列数量过多,会出现内存问题,因此程序无法运行。
是否有任何替代方法可以以编程方式确定这一点?
注意:
我只查找计数而不是字符串列表
【问题讨论】:
-
PHP 可能不是您处理此类问题的最佳选择
-
@scottevans93,你建议任何其他语言来处理这个?
标签: php algorithm permutation heaps-algorithm