Given mapowanie:Znajdź wszystkie możliwe kombinacje znaków reprezentujący numer
A: 1
B: 2
C: 3
...
...
...
Z: 26
Znajdź wszystkie możliwe sposoby liczba może być reprezentowana. Na przykład. Dla wejścia: „121”, możemy reprezentować go jako:
ABA [using: 1 2 1]
LA [using: 12 1]
AU [using: 1 21]
próbowałem myśleć o użyciu jakiegoś dynamicznego podejścia do programowania, ale nie jestem pewien, jak postępować. Zadano mi to pytanie w wywiadzie technicznym.
Oto rozwiązanie mogłem pomyśleć, proszę dać mi znać, jeśli to wygląda dobrze: [? Mi brakuje czegoś]
A[i]: Total number of ways to represent the sub-array number[0..i-1] using the integer to alphabet mapping.
Rozwiązanie:
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]
Czy trzeba wydrukować wszystkie możliwe kombinacje lub liczbę możliwych kombinacji? – Fallen
Co jeśli wejście ma 101? Czy dzieli się na 10,1 i 1,01? –
@Fallen: liczba możliwych kombinacji –