Heim > Web-Frontend > js-Tutorial > LeetCode: Römische Zahl zu Ganzzahl

LeetCode: Römische Zahl zu Ganzzahl

Mary-Kate Olsen
Freigeben: 2024-12-17 17:38:18
Original
982 Leute haben es durchsucht

LeetCode: Roman Numeral to Integer

Römische Ziffern sind ein altes Zahlensystem, das auch heute noch Verwendung findet. Sie in reguläre ganze Zahlen umzuwandeln, ist eine häufige Programmierherausforderung. Lassen Sie uns eine Lösung aufschlüsseln, die diese Konvertierung elegant handhabt.

Das römische Zahlensystem

Bevor wir in den Code eintauchen, wollen wir verstehen, wie römische Ziffern funktionieren:

  • Grundlegende Symbole: I (1), V (5), X (10), L (50), C (100), D (500), M (1000)
  • Zahlen werden im Allgemeinen von links nach rechts vom größten zum kleinsten Wert geschrieben
  • Wenn eine kleinere Zahl vor einer größeren steht, bedeutet das Subtraktion

Die Lösung

function romanToInteger(str) {
  let symbols = {
    I: 1,
    V: 5,
    X: 10,
    L: 50,
    C: 100,
    D: 500,
    M: 1000,
  }

  let result = 0

  for (let i = 0; i < str.length; i++) {
    const current = str[i]
    const next = str[i + 1]

    if (symbols[current] < symbols[next]) {
      result -= symbols[current]
    } else {
      result += symbols[current]
    }
  }

  return result
}

Nach dem Login kopieren

So funktioniert es: Schritt für Schritt

1. Symbolzuordnung
Zuerst erstellen wir ein Objekt, das jede römische Zahl ihrem entsprechenden ganzzahligen Wert zuordnet. Dies erleichtert das schnelle Nachschlagen von Werten.

2. Durch den String iterieren
Wir durchlaufen jedes Zeichen in der Eingabezeichenfolge und verfolgen dabei sowohl das aktuelle als auch das nächste Zeichen.

3. Die Kernlogik
Für jedes Zeichen vergleichen wir seinen Wert mit dem Wert des nächsten Zeichens:

  • Wenn der aktuelle Wert kleiner als der nächste Wert ist, subtrahieren wir ihn (behandelt Fälle wie IV = 4)
  • Andernfalls fügen wir es zu unserem Ergebnis hinzu (behandelt Fälle wie VI = 6)

Beispiele

romanToInteger("III") → 3
Jedes I addiert 1 zum Ergebnis

romanToInteger("IV") → 4
I wird abgezogen, weil es kleiner als V

ist

romanToInteger("IX") → 9
I wird subtrahiert, weil es kleiner als X

ist

Abschluss

Diese Lösung handhabt die Konvertierung römischer Ziffern in ganze Zahlen mithilfe einer einfachen Vergleichstechnik elegant. Der Code ist prägnant und dennoch leistungsstark genug, um alle gültigen römischen Zifferneingaben zu verarbeiten.

Das obige ist der detaillierte Inhalt vonLeetCode: Römische Zahl zu Ganzzahl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage