コーディング: JavaScript でのローマ数字から整数への変換 - LeetCode(13)

Feb 01 2023
この記事では、ローマ数字を整数に変換するように設計されたコードについて説明します。このコードは、ローマ数字を表す文字列引数「s」を受け取る「romanToInt」という名前の JavaScript 関数です。

この記事では、ローマ数字を整数に変換するように設計されたコードについて説明します。

このコードは、ローマ数字を表す文字列引数「s」を受け取る「romanToInt」という名前の JavaScript 関数です。この関数はローマ数字を整数に変換し、結果を返します。

この関数は、各ローマ数字記号を対応する整数値にマップするオブジェクト「マップ」を定義することから始まります。たとえば、「I」は 1 にマッピングされ、「V」は 5 にマッピングされます。

次に、関数は変数「result」を宣言し、それを 0 に初期化します。この変数は、最終的な整数の結果を格納するために使用されます。

次に、関数は for ループを使用して、入力文字列「s」内の各文字を反復処理します。各文字について、関数は「マップ」オブジェクト内の対応する整数値を検索します。

現在の文字が文字列の最後の文字ではない場合、関数は次の文字の値をチェックします。次の文字の値が現在の文字よりも大きい場合、関数は 2 つの値の差を「result」変数に追加します。これは、ローマ数字記号を組み合わせて、「IV」(4) や「IX」(9) のように、より大きな値を表すことができるためです。

最後に、この関数は、入力されたローマ数字に相当する整数を表す最終的な「結果」値を返します。

たとえば、「romanToInt(“XXI”)」を呼び出すと、関数は 21 を返します。

以下は、関数「romanToInt」を段階的に説明するコード スニペットです。

function romanToInt(s) {
  const map = {
    I: 1,
    V: 5,
    X: 10,
    L: 50,
    C: 100,
    D: 500,
    M: 1000
  };
  let result = 0;
  for (let i = 0; i < s.length; i++) {
    let value = map[s[i]]; // Look up the integer value of the current character
    console.log(`${s[i]} maps to ${value}`);
    if (i + 1 < s.length) {
      let nextValue = map[s[i + 1]];
      console.log(`Next character ${s[i+1]} maps to ${nextValue}`);
      if (nextValue > value) {
        value = nextValue - value; // Calculate the combined value of two symbols
        console.log(`Combined value of ${s[i]} and ${s[i+1]} is ${value}`);
        i++;
      }
    }
    result += value; // Add the current value to the final result
    console.log(`Result so far: ${result}`);
  }
  return result;
}

たとえば、「romanToInt(“XXI”)」を呼び出した場合、コンソール出力は次のようになります。

Javascript でのコーディングについてさらに詳しく知りたい場合は、コード スニペットと例をもっと見るために、ぜひ私をフォローしてください。言語をマスターし、開発者としてのスキルを向上させる方法に関する貴重な情報とヒントを共有します。さらなる最新情報を楽しみにして、一緒に学び続けましょう。

読んでいただきありがとうございます。楽しく学んでください

フォローして私たちの出版物をサポートしてください

Java 8 — 述語、消費者、サプライヤー なぜスタートアップはハイブリッド アプリケーションではなく React Native を選択する必要があるのでしょうか? Java でのシリアライゼーションとデシリアライゼーション [ Java Internals Part 6 ] [ 後半 ] パート 2: トップ (6 ~ 9) JavaScript に関する一般的な質問 Splunk と SpringBoot の統合 — 最後のパート