数字のみを含むエンコードされたメッセージが表示されます。次のマッピングも提供されます
A : 1
B : 2
C : 3
..
Z : 26
エンコードされたメッセージが与えられたら、それをデコードできる方法の数を数えます。
例:12
(A、B)と(L)の2つの方法でデコードできます
数字を文字列の文字として受け入れ、その各桁をチェックするアルゴリズムを思いつきました。
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;
メッセージの最初の数字を文字にエンコードしようとするたびに、または可能であれば最初の2桁を文字にエンコードすることができます。単一の「0」に遭遇したり、「32」に遭遇したりするようにエンコードする方法がない場合は、単に戻ります。
この問題はより効率的に解決できますか?