劍指Offer學習-面試題46:把數字翻譯成字符串

	/**
     * 把數字翻譯成字符串,計算有多少種翻譯方法
     *
     * @param n
     * @return
     */
    public int getTranslationCount(int n) {
        if (n < 10) return 1;
        char[] arr = String.valueOf(n).toCharArray();
        int[] dp = new int[arr.length];
        dp[0] = 1;
        dp[1] = ((arr[0] - '0') * 10 + (arr[1] - '0')) <= 25 ? 2 : 1;
        for (int i = 2; i < arr.length; i++) {
            dp[i] += dp[i - 1];
            int s = (arr[i - 1] - '0') * 10 + (arr[i] - '0');
            if (s >= 10 && s <= 25) {
                dp[i] += dp[i - 2];
            }
        }
        return dp[dp.length - 1];
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章