leetcode91. 解码方法

一条包含字母 A-Z 的消息通过以下方式进行了编码:

‘A’ -> 1
‘B’ -> 2

‘Z’ -> 26
给定一个只包含数字的非空字符串,请计算解码方法的总数。

示例 1:

输入: “12”
输出: 2
解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。

代码

class Solution {int[] dp;public int numDecodings(String s) {int l=s.length();dp=new int[l];Arrays.fill(dp,-1);return  getNumDecodings( s,0);}public int getNumDecodings(String s,int loc) {if(loc>=s.length()) return 1;if(dp[loc]!=-1) return dp[loc];//记忆化int o=0,t=0;if(loc+1<=s.length()&&Integer.parseInt(s.substring(loc,loc+1))>=1&&Integer.parseInt(s.substring(loc,loc+1))<=26)//分成1位数字或2位o=getNumDecodings(s,loc+1);if(loc+2<=s.length()&&Integer.parseInt(s.substring(loc,loc+2))>=10&&Integer.parseInt(s.substring(loc,loc+2))<=26)//判断当前分割字符串的合法性t=getNumDecodings(s,loc+2);dp[loc]=o+t;return dp[loc];}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 系统平均负载,Linux_解析Linux系统的平均负载概念,一、什么是系统平均负载(Load a - phpStudy...

解析Linux系统的平均负载概念一、什么是系统平均负载(Load average)&#xff1f;在Linux系统中&#xff0c;uptime、w、top等命令都会有系统平均负载load average的输出&#xff0c;那么什么是系统平均负载呢&#xff1f;系统平均负载被定义为在特定时间间隔内运行队列中的平均…

Elastic-job使用及原理

一、原理 elastic-job有lite版和cloud版&#xff0c;最大的区别是有无调度中心&#xff0c;笔者采用的是lite版本&#xff0c;无中心化。 tips: 第一台服务器上线触发主服务器选举。主服务器一旦下线&#xff0c;则重新触发选举&#xff0c;选举过程中阻塞&#xff0c;只有主服…

构建持续交付_如何使交付成为您的重点将如何帮助您构建高质量的应用程序

构建持续交付by Simon Schwartz西蒙施瓦茨(Simon Schwartz) 如何使交付成为您的重点将如何帮助您构建高质量的应用程序 (How making delivery your focus will help you build quality applications) I was recently asked by our company’s executive team why our team was…

微信退款通知,退款回调数据解密.SHA256签名AEAD_AES_256_GCM解密

$xmlResult file_get_contents("php://input");//获取微信的数据$result $this->xmlToArray($xmlResult);//将xml转成数组 // 将加密的数据解密,方法在下面$reqInfo $this->refund_decrypt($result[req_info]); /** 退款通知解密* Author WangZhaoBo* param…

BeanShell自动装箱拆箱

“装箱”和“拆箱”是用来描述自动包装一个原始类型到一个包装类以及在必要时解开包装回到原始类型的术语。装箱是 Java 的特性&#xff08;SDK 1.5&#xff09;之一&#xff0c;且 BeanShell 已支持多年。 BeanShell 支持原始类型的装箱和拆箱。比如&#xff1a; int i5; Inte…

leetcode816. 模糊坐标

我们有一些二维坐标&#xff0c;如 “(1, 3)” 或 “(2, 0.5)”&#xff0c;然后我们移除所有逗号&#xff0c;小数点和空格&#xff0c;得到一个字符串S。返回所有可能的原始字符串到一个列表中。 原始的坐标表示法不会存在多余的零&#xff0c;所以不会出现类似于"00&q…

IO流入门-第十二章-ObjectInputStream_ObjectOutputStream

DataInputStream和DataOutputStream基本用法和方法示例&#xff0c;序列化和反序列化 import java.io.Serializable; //该接口是一个“可序列化”的 &#xff0c;没有任何方法&#xff0c;是一个标识接口&#xff0c;还有Cloneable /*标识接口的作用&#xff1a;标识作用…

matlab pca重构,Matlab – PCA分析和重建多维数据

这是一个快速的演练.首先我们创建一个隐藏变量的矩阵.它有100个观察,有两个特点.>> Y randn(100,2);现在创建一个加载矩阵.这将把隐藏的变量映射到观察到的变量上.说你观察到的变量有四个特征.那么你的加载矩阵需要是24>> W [1 1; 1 -1; 2 1; 2 -1];这告诉你,观察…

文档对象模型dom_什么是文档对象模型,以及为什么应该知道如何使用它。

文档对象模型domby Leonardo Maldonado莱昂纳多马尔多纳多(Leonardo Maldonado) 什么是文档对象模型&#xff0c;以及为什么应该知道如何使用它。 (What’s the Document Object Model, and why you should know how to use it.) So, you’ve studied HTML, you’ve created y…

安装Docker step by step

1. 系统要求 centos7以上 使用cat /etc/redhat-release查看系统版本&#xff0c;我的Centos 7.6 centos-extra 仓库 enable&#xff0c;默认是打开的 2.安装docker docer安装分为联网安装和离线安装两种安装 方式&#xff0c; 第一种 在有外网环境下安装docker,一般使用yum安…

linux用户空间和内核exit的语义--linux没有线程

如果你在程序中调用了exit&#xff0c;那么很显然你的程序会退出&#xff0c;可是至于为何会退出那就是库的事情了&#xff0c;我为什么说只是库的事情而不关linux内核的事情呢&#xff1f;那是因为linux内核根本不管用户空间的行为策略。库的策略是什么&#xff1f;很简单的退…

leetcode1328. 破坏回文串

给你一个回文字符串 palindrome &#xff0c;请你将其中 一个 字符用任意小写英文字母替换&#xff0c;使得结果字符串的字典序最小&#xff0c;且 不是 回文串。 请你返回结果字符串。如果无法做到&#xff0c;则返回一个空串。 示例 1&#xff1a; 输入&#xff1a;palindro…

php补充 扩展,PHP安装扩展补充说明

上一篇文章中用到了&#xff0c;php的sodium扩展&#xff0c;那么如何安装PHP扩展呢&#xff1f;基于我之前踩过的一些坑&#xff0c;大致整理了几种安装php扩展的方法。已安装sodium为例1、先做点准备工作&#xff0c;安装sodium依赖rpm -ivh http://mirrors.whsir.com/centos…

Java调用存储过程出现Bug,sql语法错误

因为SQL Server运行没有正常,检查了传入参数的值,发现问题,然后传入默认参数,解决了问题.转载于:https://www.cnblogs.com/JimmySeraph/p/11043490.html

leetcode1438. 绝对差不超过限制的最长连续子数组

给你一个整数数组 nums &#xff0c;和一个表示限制的整数 limit&#xff0c;请你返回最长连续子数组的长度&#xff0c;该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。 如果不存在满足条件的子数组&#xff0c;则返回 0 。 示例 1&#xff1a; 输入&#…

gitlab 2.7版本升级到2.8

第一步 关闭服务 /etc/init.d/gitlab stop第二部 更新代码cd /home/gitlab/gitlab# Get latest codesudo -u gitlab git pull origin stable# Install libssudo -u gitlab bundle install --without development test# update dbsudo -u gitlab bundle exec rake db:migrate RA…

arkit技术介绍_面向移动AR的触觉技术:如何以“触摸”感增强ARKit应用

arkit技术介绍by Neil Mathew通过尼尔马修(Neil Mathew) 面向移动AR的触觉技术&#xff1a;如何以“触摸”感增强ARKit应用 (Haptics for mobile AR: how to enhance ARKit apps with a sense of “touch”) I’m really excited about the future of haptics for AR and VR. …

Unity3D的坑系列:动态加载dll

Unity3D的坑系列&#xff1a;动态加载dll 我现在参与的项目是做MMO手游&#xff0c;目标平台是Android和iOS&#xff0c;iOS平台不能动态加载dll&#xff08;什么原因找乔布斯去&#xff09;&#xff0c;可以直接忽略&#xff0c;而在Android平台是可以动态加载dll的&#xff0…

微信小程序 php配置,微信小程序的配置

我们使用app.json文件来对微信小程序进行全局配置&#xff0c;决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。以下是一个包含了所有配置选项的简单配置app.json{"pages": ["pages/index/index","pages/logs/index"],"wi…

leetcode332. 重新安排行程(dfs)

给定一个机票的字符串二维数组 [from, to]&#xff0c;子数组中的两个成员分别表示飞机出发和降落的机场地点&#xff0c;对该行程进行重新规划排序。所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;所以该行程必须从 JFK 开始。 …