可能的组合并在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