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