【问题标题】:Algorithm for finding string permutations where each position varies查找每个位置变化的字符串排列的算法
【发布时间】:2013-08-10 03:19:03
【问题描述】:

假设我有一个三字符串“ABC”。我想生成该字符串的所有排列,其中单个字母可以替换为他的小写等效项。例如,“aBC”、“abC”、“abc”、“AbC”、“Abc”等。换句话说,给定一个像 [Aa][Bb][Cc] 这样的正则表达式,生成每个可以匹配的字符串它。

【问题讨论】:

    标签: string permutation


    【解决方案1】:

    这个问题可以简单地简化为生成所有长度为n 的二进制序列。之前已解决此问题,例如在 Fastest way to generate all binary strings of size n into a boolean array?all permutations of a binary sequence x bits long 中。

    【讨论】:

    • 不完全是,你可以使用“A”或“a”——不能同时使用(在同一个排列项中)
    • @alfasin:不确定我是否关注。每个二进制数字对应一个字母。 0 是小写,1 是大写。 000 代表abc001 代表abC010 代表aBc 等等。
    • 如果你使用小写字母“a”,你必须使用大写字母:“B”和“C”在同一个排列中。至少根据他的定义:“可以替换单个字母的地方……”
    • @alfasin:他是这么说的,但我怀疑他是认真的。看看这些例子:它们反复违反约束。
    • 我仅以大写/小写为例:字符的转换是表格驱动的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2021-11-08
    • 2022-11-12
    • 2012-12-24
    相关资源
    最近更新 更多