【问题标题】:Permutation of S [duplicate]S的排列[重复]
【发布时间】: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


【解决方案1】:

1) 定义你的标记,一个标记将是一个字符串单元(Cat、Dog 和 Rat 都是一个标记),为每个分配一个数字,0 1 2 将起作用,因为它们可能会进入一个数组。

2) 嵌套 for 循环??? for(i=0 to 2) for(j=0 to 2) for(k=0 to 2) return arr[i]+arr[j]+arr[k]

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 2019-09-18
    • 2020-02-02
    • 2012-09-21
    • 2019-11-03
    • 1970-01-01
    相关资源
    最近更新 更多