algorithm - 获取字母可能有变体的单词的所有排列

标签 algorithm permutation

我正在寻找以下问题的伪代码算法。

我想得到一个词的所有排列。 在字母表中,每个字母都可能有变体。例如在法语中,字母 e 也可以是 é è ê ë。 与其他字母相同... aàâä 等

现在对于任何给定的单词,我想列出所有字母的所有变体的所有可能排列。

输入是一个单词和一个所有字母及其变体(如果有的话)。

最佳答案

这是一些基本的伪代码:

  1. Generate a list Perm[1...n] of all permutations without considering variants.
  2. For i = 1 to n do
  3.  For j = 1 to |Perm[i]| do
  4.   For k = 1 to #variants(Perm[i][j])
  5.    print Perm[i][1...j-1] (variant #k) Perm[i][j+1...|Perm[i]|]

换句话说,在不考虑变体的情况下生成排列(这个问题已经在 SO 上多次处理过,请查找“生成排列”)。然后,对于每个排列,查看每个字母,并针对它的每个排列,打印单词,并将字母替换为它的变体。

关于algorithm - 获取字母可能有变体的单词的所有排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770103/

相关文章:

algorithm - 可以使用一组给定的数字生成的固定长度的不同序列的数量

javascript - 获取由两个数字之间的 ASCII 字符生成的字符串的所有可能组合

python - 选择更大的球

algorithm - "highway"距离的 Weiszfeld 算法?

algorithm - 我怎样才能使这个 if 条件更简单?

algorithm - 如何实现一种算法,在 O (k) 时间内合并两个具有 n=2^k 个元素的堆?

c++ - 通过开放空间检查两个物体的连通性

r - 有没有办法在热图中保留聚类但减少观察数量?

java - 输出不打印到txt文件Java