劍指offer:js實現把數字翻譯成字符串

題目:給定一個數字,我們按照如下的規則把它翻譯爲字符串:將 0-25 分別對應翻譯到 a-z 字符,如 0 翻譯成 a,以此類推。一個數字可能有多少種翻譯。例如,12258 有 5 種不同的翻譯,分別是 “bccfi”、”bwfi”、”bczi”、”mcfi”、”mzi”。請編程實現一個函數,用來計算一個數字有多少種不同的翻譯方法。

思路:遞歸尋找,從後往前,尋找規律

情況分析

const getStringNum = n => {
    if(typeof n !== 'number' || n<0)return false;
    let number = n.toString();
    let res = new Array(number.length);
    res[number.length] = 1;
    res[number.length-1] = 1;
    let g = 0;
    for(let i=number.length-2;i>=0;i--){
        if(parseInt(number[i]+""+number[i+1])<26)
            g = 1;
        else
            g = 0;
        res[i] = g*res[i+2] + res[i+1];
    }
    return res[0];
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章