博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode91
阅读量:6952 次
发布时间:2019-06-27

本文共 1228 字,大约阅读时间需要 4 分钟。

class Solution {    public int numDecodings(String s) {        if(s.length()==0){            return 0;        }        int[] dp = new int[s.length()];        dp[0] = s.charAt(0)=='0'?0:1;        if(s.length()==1){            return dp[0];        }        int k = s.charAt(0) > '0' && s.charAt(1) > '0'? 1:0;        dp[1] = k + (s.charAt(0) == '1' || s.charAt(0) == '2' && s.charAt(1) <= '6' ? 1:0);        for (int i = 2; i < dp.length; i++) {            if(s.charAt(i)!='0'){                dp[i] += dp[i-1];            }            if(s.charAt(i-1)=='1'||s.charAt(i-1)=='2'&&s.charAt(i)<='6'){                dp[i] += dp[i-2];            }        }        return dp[s.length()-1];    }}

 

补充一个python的实现:

1 class Solution: 2     def numDecodings(self, s: str) -> int: 3         if not s: 4             return 0 5         dp = [0 for x in range(len(s) + 1)] 6         dp[0] = 1 7         dp[1] = 1 if 0 < int(s[0]) <= 9 else 0 8  9         for i in range(2, len(s) + 1):10             if 0 < int(s[i-1:i]) <= 9:11                 dp[i] += dp[i - 1]12             if s[i-2:i][0] != '0' and int(s[i-2:i]) <= 26:13                 dp[i] += dp[i - 2]14         return dp[len(s)]

参考: 

转载于:https://www.cnblogs.com/asenyang/p/9826815.html

你可能感兴趣的文章
Raspbian 2019-04-08 发布,树莓派上的 Debian
查看>>
C#中如何给Excel添加水印
查看>>
mongodb嵌套文档结构设计
查看>>
[Sqoop]Sqoop使用
查看>>
Maven学习笔记(一)
查看>>
《零基础 Java 开发 》 第三章 运算符
查看>>
Maven_学习_01_跳过单元测试
查看>>
推荐 :2018最流行的编程语言Top 3
查看>>
BeanFactory 和 ApplicationContext
查看>>
Java如何制作帮助文档(API)
查看>>
Parrot 4.6 发布,基于 Debian 的 Linux 发行版
查看>>
HTML 基础
查看>>
NSA 将向公众开源逆向工程工具 GHIDRA
查看>>
微博内容正则表达式匹配链接, 话题标签与@用户
查看>>
ES6 - class的学习
查看>>
Maven和Gradle如何添加依赖
查看>>
Android RuntimePermissions运行时权限:批量权限申请
查看>>
LoRaWAN技术在物联网应用领域的优势
查看>>
“突破聆听”计划:霍金联手扎克伯格,斥巨资探索外星生命
查看>>
Android加载Gif和ImageView的通用解决方案:android-gif-drawable:GifTextView(2)
查看>>