可能的组合并转换成 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

更新时间:23-11-2020

177 次查看

开启你的 职业

完成课程获得认证

开始
广告