問候。
我在這個系列中發布了 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中文網其他相關文章!