解码方法

代码:

class Solution {
public:
/**
* @param s a string, encoded message
* @return an integer, the number of ways decoding
*/

int numDecodings(string& s) {
// Write your code here
int size = s.size();
if(size == 0)
return 0;

int *dp = new int[size];
dp[0] = 1*(s[0]!=‘0‘);
if(size >= 2)
{
string t = s.substr(0,2);
int n = atoi(t.c_str());
dp[1] = dp[0]*(s[1]!=‘0‘) + (n>0 && n<=26);

for(int i=2; i<size; i++)
{
string t = s.substr(i-1,2);
int n = atoi(t.c_str());
dp[i] = dp[i-1]*(s[i]!=‘0‘) + (n>=10 && n<=26)*dp[i-2];
}
}
return dp[size-1];
}
};

截图:

时间: 2024-10-05 00:53:23

解码方法的相关文章

使用多字节字符集的跨平台(PC、Android、IOS、WP)编码/解码方法

随着移动端的发展,跨平台已成为通讯架构设计的重要考虑因素,PC.Android.IOS.WP等跨多平台间的数据通讯,必然要解决字符编码/解码的问题. 多字节字符集MBCS不是跨平台的首选字符集,面向跨平台.国际化的推荐字符集肯定是UNICODE. 写VC的人都知道,在以前VC++6.0中默认的字符集是多字节字符集,而VS2005及以后默认的字符集是Unicode,VS2013中默认不再对多字节字符串进行支持. 但对很多较早的服务端项目,依然使用的是多字节字符集,不过使用多字节字符集依然可以实现跨

LeetCode OJ: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

javascript——URI的编解码方法

有效的URI(统一资源标示符)是不能包含某些字符的,如空格,所以需要进行编码,编码方法有:encodeURI()和encodeURIComponent(), 对编的码进行解码方法有:decodeURI()和decodeURIComponent(). encodeURI()编的码只能decodeURI()解 encodeURIComponent()编的码只能decodeURIComponent()解, encodeURI():用于编码完整的URI,它不对URI中的特殊字符进行编码:例如冒号.前斜杠

C#中Base64之编码,解码方法

原文:C#中Base64之编码,解码方法 1.base64  to  string string strPath =  "aHR0cDovLzIwMy44MS4yOS40Njo1NTU3L19iYWlkdS9yaW5ncy9taWRpLzIwMDA3MzgwLTE2Lm1pZA==";             byte[] bpath = Convert.FromBase64String(strPath);    strPath = System.Text.ASCIIEncoding.

[LeetCode] 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

base64加密PHP脚本的解码方法

转自:http://yoursunny.com/t/2009/PHP-decode/ PHP是网站服务端最流行的编程语言之一.PHP运行环境本身是开源的,服务器不加载插件时PHP脚本也无法加密.但是,总有人因为商业上的考虑,而将PHP程序通过各种方法进行混淆,使读者很难看到清晰易懂的代码. 然而,PHP运行环境的本质决定了,被混淆.编码的PHP脚本总是有办法恢复成可读的代码的.本文介绍了一种对含有eval和base64_decode的.被加密的PHP的解码方法. 在使用这种方法之前,你应该准备好

Leetcode 91. Decode Ways 解码方法(动态规划,字符串处理)

Leetcode 91. Decode Ways 解码方法(动态规划,字符串处理) 题目描述 一条报文包含字母A-Z,使用下面的字母-数字映射进行解码 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给一串包含数字的加密报文,求有多少种解码方式 举个例子,已知报文"12",它可以解码为AB(1 2),也可以是L (12) 所以解码方式有2种. 测试样例 Input: "0" "121212" "1010

[Swift]LeetCode91. 解码方法 | 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 a non-empty string containing only digits, determine the total number of ways to decode it. Example 1: Input: &qu

91. 解码方法

题目描述 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 1: 输入: "12" 输出: 2 解释: 它可以解码为 "AB"(1 2)或者 "L"(12). 示例 2: 输入: "226" 输出: 3 解释: 它可以解码为 "BZ" (2 26), "

Leetcode 639.解码方法2

解码方法2 一条包含字母 A-Z 的消息通过以下的方式进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 除了上述的条件以外,现在加密字符串可以包含字符 '*'了,字符'*'可以被当做1到9当中的任意一个数字. 给定一条包含数字和字符'*'的加密信息,请确定解码方法的总数. 同时,由于结果值可能会相当的大,所以你应当对109 + 7取模.(翻译者标注:此处取模主要是为了防止溢出) 示例 1 : 输入: "*" 输出: 9 解释: 加密的信息可