สมมติว่าเราได้รับการแมป a = 1, b = 2, ... z = 26 และข้อความเข้ารหัส เราต้องเขียนฟังก์ชัน JavaScript ที่รับข้อความนั้นเข้ามา
ฟังก์ชันควรนับจำนวนวิธีที่ข้อความสามารถถอดรหัสได้
ตัวอย่างเช่น ข้อความ '111' จะให้ 3 เนื่องจากสามารถถอดรหัสได้เป็น 'aaa', 'ka', และ 'ak'
ตัวอย่างโค้ด
โค้ดสำหรับการทำงานนี้จะเป็นดังนี้
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'));ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้
3