46-数値を文字列に変換する-python

トピック:数値を指定すると、次のルールに従って文字列に変換されます。0は「a」に変換され、1は「b」に変換され、...、25は「z」に変換されます。1つの番号に複数の翻訳がある場合があります。数の異なる変換方法の数を計算する関数を実装してください。

def digit_to_string(num):
    num = str(num)
    length = len(num)
    res = [0]*length
    i=length-1
    while i>=0:
        if i==length-1:
            res[i]=1
        elif i==length-2:
            if int(num[i:])<26:
                res[i]=2
            else:
                res[i]=1
        else:
            if int(num[i:i+2]) < 26:
                res[i]=res[i+1] + res[i+2]
            else:
                res[i]=res[i+1]
        i-=1
    return res[0]

  注:動的計画法のアイデアを使用してください。f [i] = f [i + 1] + g [i、i + 1] f [i + 2]、g [i、i + 1]は、i、i +1で構成される数が26未満かどうかです。 、より小さい場合は2つに分割でき、g [i、i + 1]は1、26以上の場合は分割できず、g [i、i +1]は0。

おすすめ

転載: blog.csdn.net/wh672843916/article/details/105503737