赣州新闻网

首页 / 科技

Java经典算法:解码方式!

2020-04-02 · 赣州新闻网 · 科技

使用以下映射将包含来自AZ的字母的消息编码为数字:

\'A\'->

1\'B\'-> 2

...

\'Z\'-> 26

给定包 l k含数字的已编码消息,请确定对其进行解码的总数。

Java解决方案

通过使用动态编程可以解决此问题。这类似于计算爬楼梯方式的问题。关系是dp=dp+O H 9dp。,下面是代码:

publicintnumDecodings(String s) {

int dp = newint;

dp = 1;

if(s.charAt(0) == \'0\') {

return0;

}

dp = 1;

for(int i = 1; i < s.length() I O); i++) {

charc = s.charAt(i);

charp = s.charAt(i - 1);

if(c == \'0\' && (b J = ( A Jp == \'0\' || p > \'2? W 1 G 3 R ; +\')) {

return0;

}

if(p == \'0\') {

dp = dp;

} elseif (p == \'1\') {

if(c == \'0\') {

dp = dp;

} else {

dp = dp + dp;

}

} elseif (p == \'2\') {

} elseif$ = W (c <= \'6\') {

dp =u O I N } u X dp + dp;

dp = dp;

} else {

rei + Y / n wturndp;}

经典安远信丰关系消息方式算法计算方案