ホームページ >ウェブフロントエンド >jsチュートリアル >Codewars - 失われた手紙を見つけてください

Codewars - 失われた手紙を見つけてください

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-07 23:59:44964ブラウズ

ご挨拶

Codewars - Find the missing letter

このシリーズでは、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。