与えられたマッピング:
A: 1
B: 2
C: 3
...
...
...
Z: 26
数値を表現できるすべての可能な方法を見つけます。たとえば、入力「121」の場合、次のように表すことができます。
ABA [using: 1 2 1]
LA [using: 12 1]
AU [using: 1 21]
ある種の動的計画法のアプローチを使用することを考えてみましたが、どのように進めればよいかわかりません。技術面接でこんな質問をされました。
これが私が考えることができる解決策です、これが良さそうなら私に知らせてください:
A[i]: Total number of ways to represent the sub-array number[0..i-1] using the integer to alphabet mapping.
解決策 [何か不足していますか?]:
A[0] = 1 // there is only 1 way to represent the subarray consisting of only 1 number
for(i = 1:A.size):
A[i] = A[i-1]
if(input[i-1]*10 + input[i] < 26):
A[i] += 1
end
end
print A[A.size-1]