在这里,我将通过上述脚本语言的操作符以及数据结构(如列表和字典)的生成器,以优美有效的方式解决称为Python的脚本语言的强大功能和可用性。
但是,恐怕我不完全理解“尽可能复杂”和“合理化”这两个词的使用。不过,这是我惯用的,不言自明的,直接的策略的摘要,紧接着是您将发现的Python实际实现,完全符合该语言的俏皮,高级特性:
定义字母–显而易见的第一步。为了扩展性,我们选择整个ascii范围。请注意,使用内置列表生成器可以为我们节省数小时的繁琐列表初始化。
告诉我们字母表中每个字母要使用多少个。这只是表示为另一个列表!
将这两个列表合并到一个方便的字典中,其中的键是ascii点,值是所需的数量。
我们现在准备开始制作角色!首先从字典中创建一个字符串。这将包含我们最终输出中所需的所有字符,以及每个字符的正确数量!
声明所需的字符顺序,并启动一个新列表,该列表将保留我们的最终输出。通过简单的迭代,我们将生成的字符放到最终位置并打印结果!
这是实际的实现
# 1: Define alphabet:
a = range(255)
# 2: Letter count:
n = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0)
# 3: Merge to dictionary:
d = { x: y for x, y in zip(a,n) }
# 4: 'Initialize' characters
l = ''.join([chr(c) *n for c,n in d.items()])
# 5: Define the order of the characters, initialize final string
# and sort before outputting:
z = [6,5,0,7,11,1,2,3,4,8,9]
o = [0] * 13
for c in l:
i = z.pop(0)
o[i] = c
print ''.join(o)
好的,只是做了一个简短但愚蠢的问题,并添加了一堆文本而不是TL; DR代码解决方案