Giả sử chúng ta được cho ánh xạ a = 1, b = 2, ... z = 26, và một thông điệp đã mã hóa. Chúng ta cần viết một hàm JavaScript nhận thông điệp đó.
Hàm sẽ đếm số cách nó có thể được giải mã.
Ví dụ, thông điệp '111' sẽ cho 3, vì nó có thể được giải mã thành 'aaa', 'ka', và 'ak'.
Ví dụ
Mã thực hiện:
const waysToProcess = ( message, ways = 0 ) => {
if ( message.length ) {
ways = waysToProcess( message.slice(1, message.length), ways );
const numCurr = parseInt( message[0] );
const numNext = "undefined" === typeof message[1] ? null : parseInt(message[1]);
if ( numCurr && numNext && numCurr < 3 && ( numCurr + numNext ) < 27 ) {
ways = waysToProcess( message.slice(2, message.length), ways );
}
} else {
ways++;
}
return ways;
}
console.log(waysToProcess('111'));
Kết quả
Kết quả trong console:
3