算法

LeetCode题解:解码方法

2022-03-18  本文已影响0人  搬码人

题目描述

一个包含字母A-Z的消息通过以下映射进行编码:
'A' ->"1"
'B'->"2"
……
'Z'->"26"
要解码已编码的消息,所有数字必须基于上诉映射的方法,方向映射回字母 (可能有多种方法)例如,“11106”可以映射为:

示例

方法思路

动态规划

class Solution {
    public int numDecodings(String s) {
     int length = s.length();
     int[] array = new int[length+1];
     array[0] = 1;
     for(int i=1;i<length+1;i++){
         if(s.charAt(i-1)!='0'){
             array[i]+=array[i-1];
         }
         if(i>1&&s.charAt(i-2)!='0'&&((s.charAt(i-2)-'0')*10+(s.charAt(i-1)-'0'))<=26){
             array[i]+=array[i-2];
         }
     } 
     return array[length];   
    }
}

复杂度分析

上一篇 下一篇

猜你喜欢

热点阅读