这里的Newb程序员,我最熟悉Python,但也学习C和Java,所以3中的任何一个都没问题。
我所拥有的是一串字母,比如说:
ABXDEYGH
但是说,
X可以是M和N. Y可以是P和Q.
在这个例子中,我想基本上打印这串字母的所有可能变体 喜欢:
ABMDEPGH
ABNDEPGH
ABMDEQGH
ABNDEQGH
任何帮助将不胜感激。提前致谢
答案 0 :(得分:2)
这归结为一个简单的排列问题。你关心的是文本中可以改变的部分;变量。其余部分可以忽略,直到您想要显示它。
因此,您的问题可以更简单地说明:集合X
中的1个项目和集合Y
中的另一个项目的所有可能排列是什么?这称为交叉产品,有时也简称为product。
这是一个可能的Python解决方案:
import itertools
x = set(['M', 'N'])
y = set(['P', 'Q'])
for items in itertools.product(x, y)
print 'AB{0}DE{1}GH'.format(*items)
请注意,print ''.format()
命令使用描述为here的“解包参数”表示法。
答案 1 :(得分:1)
为什么不写两个循环。一个用X替换所有可能的字符,用Y替换一个。
foreach(char c in charSet1){
// replaces X
foreach(char ch in charSet2){
// replace Y
}
}