A : 1
B : 2
C : 3
..
Z : 26
给定一个编码消息,计算它可以被解码的方式数。
例如:12
可以有两种解码方式:(A,B) 和 (L)
我想到了一种算法,将数字作为字符串的字符接受,然后检查每个数字:
1.If the first digit of the string array is zero , return zero.
2.for each of its digit(i) from 1 to n perform:
if str[i-1]>2 || (str[i-1]=='2' && str[i]>'6')
return 0;
if(str[i]==0)
return 0;
每次我尝试将消息中的第一个数字编码为一个字母,如果可能的话,我可以将前两个数字编码为一个字母。当遇到无法编码的情况,比如遇到单个的0或者32时,只需返回。这个问题有更高效的解决方法吗?