您会收到一条仅包含数字的编码消息。还为您提供以下映射
A : 1
B : 2
C : 3
..
Z : 26
给定一条编码的消息,计算它可以被解码的方式的数量。
eg:12
可以用2种方式解码:(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' 等无法编码时,只需返回即可。
这个问题可以更有效地解决吗?