Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การจัดเรียงที่เป็นไปได้และแปลงเป็นอักษรอัลกอริทึมใน JavaScript


สมมติว่าเราได้รับการแมป 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