LeetcodeDecode Ways

Posted wuezs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetcodeDecode Ways相关的知识,希望对你有一定的参考价值。

题目链接:https://leetcode.com/problems/decode-ways/

题目:

A message containing letters from A-Z is being encoded to numbers using the following mapping:

'A' -> 1
'B' -> 2
...
'Z' -> 26

Given an encoded message containing digits, determine the total number of ways to decode it.

For example,
Given encoded message "12", it could be decoded as "AB" (1 2) or "L" (12).

The number of ways decoding "12" is 2.

思路:

类似于爬楼梯题目。

算法

public int numDecodings(String s) {  
    if (s.length() == 0)  
        return 0;  
    char sc[] = s.toCharArray();  
    if (sc[0] == '0')  
        return 0;  
    int c[] = new int[s.length()];  
    c[0] = 1;  
  
    for (int i = 1; i < sc.length; i++) {  
  
        if ((sc[i - 1] == '2' && sc[i] >= '1' && sc[i] <= '6') || (sc[i - 1] == '1' && sc[i] != '0')) {  
            if (i + 1 < sc.length && sc[i + 1] == '0') {  
                c[i] = c[i - 1];  
            } else if (i - 2 >= 0) {  
                c[i] = c[i - 1] + c[i - 2];// 类似爬楼梯题  
            } else {  
                c[i] = c[i - 1] + 1;  
            }  
        } else if (sc[i] == '0' && sc[i - 1] == '0') {  
            return 0;  
        } else if (sc[i] == '0' && sc[i - 1] > '2') {  
            return 0;  
        } else {  
            c[i] = c[i - 1];  
        }  
    }  
    return c[s.length() - 1];  
}  


以上是关于LeetcodeDecode Ways的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Decode Ways

UVA 357 Let Me Count The Ways

Codeforces466C Number of Ways

Codeforces 466CNumber of Ways

hdu 2157 How many ways?? (可达矩阵)

ChatGPTChatGPT Tutorial for Developers - 38 Ways to 10x Your Productivity - 知识点目录