gpt4 book ai didi

python - 如何根据输入的数字生成所有可能的字母组合列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:22 25 4
gpt4 key购买 nike

我刚刚遇到一个有趣的面试风格类型的问题,我无法理解。

基本上,给定一个数字到字母表的映射,使得 [1:A, 2:B, 3:C ...],打印出所有可能的组合。

例如“123”将生成 [ABC, LC, AW] 因为它可以分为 12,3 和 1,23。

我认为它必须是某种类型的递归函数,它检查大小为 1 和 2 的窗口,如果它是有效的字母映射,则附加到先前的结果。

如果有人可以制定一些伪/python 代码,我们将不胜感激。

最佳答案

所以我设法拼凑了一个答案,它不像我想要的那样 pythonic 并且可能有一些冗余,但它与 123 示例一起输出 ABC、AW 和 LC。

我可能会在明天清理它(或者如果有人想清理它),只是张贴它以防有人也在处理它并且想知道。

def num_to_alphabet(numbers, ans = ""):
if not numbers:
print ans
numbers = str(numbers)
window = numbers[:2]
alph = string.uppercase
ans = ans[:]
ans2 = ans[:]
window_val = ""
try:
if window[0]:
val = int(numbers[0])-1
if alph[val]:
ans += alph[val]
num_to_alphabet(numbers[1:], ans)
if window[1]:
val = int(window) -1
if alph[val]:
ans2 += alph[val]
if len(window) > 1:
num_to_alphabet(numbers[2:],ans2)
else:
num_to_alphabet(numbers[1:],ans2)
except IndexError:
pass

关于python - 如何根据输入的数字生成所有可能的字母组合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16183941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com