问候。
我在本系列中发布了 Codewars 挑战和我的思考过程。我尽可能使用 JS 和 Node 18。只是为了清楚起见,我正在合理使用它们。
对于下一个练习,我们有一个有序的升序字母数组,但中间某处缺少一个字母:
['a','b','c','d','f']
['O','Q','R','S']
首先,我们需要知道字母在Unicode中都有对应的数值。因此,我们需要能够将字母转换为数字的函数,反之亦然。
让我们尝试一些 JS 函数,看看它们的作用:
function findMissingLetter(array) { return [array[3].charCodeAt(),array[4].charCodeAt()]; } // the array is ['a','b','c','d','f'] // it expects 'e' // this function returns [ 100, 102 ]
我们找到了第一个重要的拼图。现在我们需要围绕它创建一个解决方案。为此,我们可以使用一些东西来遍历数组,寻找异常:
let counter = 0; while (array[counter].charCodeAt() + 1 == array[counter + 1].charCodeAt() && counter < array.length) { counter++; }
然后,我们需要找到实际丢失的字母:
let letter = String.fromCharCode(array[counter].charCodeAt() + 1)
组装所有东西:
function findMissingLetter(array) { let counter = 0; while (array[counter].charCodeAt() + 1 == array[counter + 1].charCodeAt() && counter < array.length) { counter++; } let letter = String.fromCharCode(array[counter].charCodeAt() + 1) return letter; }
令人惊讶的可读性。我觉得还好。一定有办法优化它,但我还不知道如何优化。
保重。喝水???.
上一页
以上是Codewars - 找到丢失的字母的详细内容。更多信息请关注PHP中文网其他相关文章!