String 查找每个位置变化的字符串排列的算法
假设我有一个三个字符的字符串“ABC”。我想生成该字符串的所有排列,其中一个字母可以替换为小写字母。例如,“aBC”、“aBC”、“aBC”、“aBC”、“aBC”等。换句话说,给定像[Aa][Bb][Cc]这样的regexp,可以生成它可以匹配的每个字符串。这个问题可以简单地简化为生成所有长度为String 查找每个位置变化的字符串排列的算法,string,permutation,String,Permutation,假设我有一个三个字符的字符串“ABC”。我想生成该字符串的所有排列,其中一个字母可以替换为小写字母。例如,“aBC”、“aBC”、“aBC”、“aBC”、“aBC”等。换句话说,给定像[Aa][Bb][Cc]这样的regexp,可以生成它可以匹配的每个字符串。这个问题可以简单地简化为生成所有长度为n的二进制序列。这一点以前已经提到过,例如在和中。不完全是这样,您可以使用“A”或“A”-但不能同时使用(在同一排列项目中)@alfasin:我不确定是否遵循。每个二进制数字对应一个字母0是小写,1是大
n
的二进制序列。这一点以前已经提到过,例如在和中。不完全是这样,您可以使用“A”或“A”-但不能同时使用(在同一排列项目中)@alfasin:我不确定是否遵循。每个二进制数字对应一个字母0
是小写,1
是大写000
代表abc
,001
代表abc
,010
代表abc
,依此类推。如果使用小写字母“a”,则必须在同一排列中使用大写字母:“B”和“C”。至少根据他的定义:“一个字母可以替换的地方……”阿尔法辛:他是这么说的,但我怀疑他是不是这个意思。请看示例:它们反复违反约束。我仅使用大写/小写作为示例:字符上的转换是表驱动的。