我正在回答一些互联网上的编程问题,这个问题引起了我的兴趣。该问题定义如下:
输入由一个单独的行组成,其中包含一个没有空格的小写字符字符串。其长度最多为7个字符,并且其字符按字典顺序排序。
输出:
打印字符串的所有排列,每行一个,按字典顺序列出。
输入:此代码按字典顺序打印字符串的所有排列。它有问题,请通过修改或添加一行来找到并修复它!
输入由一个单独的行组成,其中包含一个没有空格的小写字符字符串。其长度最多为7个字符,并且其字符按字典顺序排序。
输出:
打印字符串的所有排列,每行一个,按字典顺序列出。
def permutations():
global running
global characters
global bitmask
if len(running) == len(characters):
print(''.join(running))
else:
for i in xrange(len(characters)):
if ((bitmask>>i)&1) == 0:
bitmask |= 1<<i
running.append(characters[i])
permutations()
running.pop()
raw = raw_input()
characters = list(raw)
running = []
bitmask = 0
permutations()
有人能为我回答这个问题并解释一下它是如何工作的吗?我对位掩码的应用不是很熟悉。谢谢。