Với một ánh xạ:Tìm tất cả các kết hợp có thể có của một String đại diện của một số
A: 1
B: 2
C: 3
...
...
...
Z: 26
Tìm tất cả các cách có thể một số có thể được đại diện. Ví dụ. Đối với một đầu vào: "121", chúng ta có thể đại diện cho nó như:
ABA [using: 1 2 1]
LA [using: 12 1]
AU [using: 1 21]
Tôi cố gắng suy nghĩ về việc sử dụng một số loại một cách tiếp cận lập trình năng động, nhưng tôi không chắc chắn làm thế nào để tiến hành. Tôi đã được hỏi câu hỏi này trong một cuộc phỏng vấn kỹ thuật.
Dưới đây là một giải pháp tôi có thể nghĩ ra, xin vui lòng cho tôi biết nếu điều này có vẻ tốt: [? Tôi thiếu một cái gì đó]
A[i]: Total number of ways to represent the sub-array number[0..i-1] using the integer to alphabet mapping.
Giải pháp:
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]
DO bạn phải in tất cả các kết hợp có thể hoặc số kết hợp có thể? – Fallen
Điều gì sẽ xảy ra nếu đầu vào là 101? Nó có chia thành 10,1 và 1,01 không? –
@ Fallen: số kết hợp có thể có –