gpt4 book ai didi

java - 排列字符数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:48 24 4
gpt4 key购买 nike

假设您需要发现“n”个不同字符的所有可能排列,比如“a”、“b”、“c”。你能建议我可以用来完成这项工作的算法吗?一般来说,你会怎么做?

最佳答案

设“Perms”为找到的排列集合,“Used”为当前所选字符的列表。

从集合 S 中找出 n 个字符的排列:

  1. 如果 n = 0,则 Used 是一个排列。将它添加到 Perms 并返回。
  2. 对于 S 中的每个字符 C:
    1. 从 S 中删除 C 并将其附加(或推送)到 U。
    2. 从 S 中找出 n-1 个字符的排列。
    3. 删除(或弹出)U 的结尾并将 C 添加到 S。

当您从查找 n 个字符的排列返回时,Perms 包含所有可能的排列。

请注意,这一切都是使用集合和列表完成的。有更轻量级的替代方案,但这些结构使步骤更简单,所以我使用了它们。

关于java - 排列字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com