【发布时间】:2015-03-30 03:01:58
【问题描述】:
假设我有一行在不同的单元格中填充了三个不同的字符串,如何创建一个将生成以下输出的置换算法?
输入:猫狗老鼠
输出:
猫狗老鼠
猫鼠狗
狗猫老鼠
狗鼠猫
鼠狗猫
鼠猫狗
网络中的大多数解决方案都会生成组合,而不是所需的排列。此外,我发现的解决方案只涉及一个单元格中的字符串。即:Cat --> Cat、Cta、Atc、Act 等等等等
我希望有人可以在这方面帮助我 - 或者至少提供一个起点。
非常感谢!
【问题讨论】:
-
您可以在互联网上找到许多字符串版本,您可以在其中将字符串交换为
String[]或更好的List<String>,并将其更改为索引整个元素而不是字符和你准备好了。许多 do 正确地进行排列。 -
这是一个典型的递归问题,有很多方法可以解决。假设这是一项任务,我会给你一个小费,让你尝试做剩下的事情。假设 f(array, count, prefixArray) 是一个函数,它输出长度为“count”的“array”的排列,并在每个输出的前面附加 prefixArray 的项目。尝试识别基本情况并解决它,然后找到使用 f(array, n-1, prefixArray) 解决 f(array, n, prefixArray) 的方法
标签: string algorithm vba permutation