91. 解码方法【字符串解码总数】

分析:截取字符串前缀字串,当前字符串可以解码的总数取决于最后一个字符是单独解码还是和前一个字符一起解码
- 如果当前字符单独解码,要求当前字符不为0
- 如果当前字符和前一个字符一起解码,要求前一个字符不能是0,并且加起来得到的数不能超过26
- 最后一个字符两种情况的值加起来就是最终的解码种数
1 class Solution { 2 public int numDecodings(String s) { 3 int len = s.length(); 4 int[] dp = new int[len+1]; 5 dp[0] = 1; 6 for(int i=1;i<=len;i++){ 7 // 单独字符 8 if(s.charAt(i-1) != '0'){ 9 dp[i] = dp[i-1]; 10 } 11 // 双字符 12 if(i>1 && s.charAt(i-2) != '0' && (s.charAt(i-2)-'0')*10 + (s.charAt(i-1)-'0') <= 26){ 13 dp[i] += dp[i-2]; 14 } 15 } 16 return dp[len]; 17 } 18 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程