ホームページ >ウェブフロントエンド >jsチュートリアル >Codewars - 失われた手紙を見つけてください
ご挨拶
このシリーズでは、Codewars の課題と私の思考プロセスを投稿しています。私は可能な限り JS と Node 18 を使用しています。明確にするために、私はそれらを公正に使用しています。
この次の演習では、順序付けられた昇順の文字の配列がありますが、中央のどこかで 1 つの文字が欠落しています。
['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 中国語 Web サイトの他の関連記事を参照してください。