首頁 > web前端 > js教程 > LeetCode:羅馬數字到整數

LeetCode:羅馬數字到整數

Mary-Kate Olsen
發布: 2024-12-17 17:38:18
原創
980 人瀏覽過

LeetCode: Roman Numeral to Integer

羅馬數字是一種古老的數字系統,至今仍在使用。將它們轉換為常規整數是一個常見的程式設計挑戰。讓我們分解一個可以優雅地處理這種轉換的解決方案。

羅馬數字系統

在深入程式碼之前,讓我們先了解羅馬數字的工作原理:

  • 基本符號:I (1)、V (5)、X (10)、L (50)、C (100)、D (500)、M (1000)
  • 數字一般是由大到小、從左到右書寫
  • 當較小的數字出現在較大的數字之前時,表示減法

解決方案

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
}

登入後複製

它是如何運作的:一步一步

1。符號映射
首先,我們建立一個對象,將每個羅馬數字映射到其相應的整數值。這使得快速查找值變得容易。

2。遍歷字串
我們循環遍歷輸入字串中的每個字符,追蹤當前字符和下一個字符。

3。核心邏輯
對於每個字符,我們將其值與下一個字符的值進行比較:

  • 如果當前值小於下一個值,我們將其減去 (處理 IV = 4 等情況)
  • 否則,我們將其加到結果中(處理 VI = 6 等情況)

範例

romanToInteger("III") → 3
每個 I 將結果加 1

romanToInteger("IV") → 4
I 被減去,因為它小於 V

romanToInteger("IX") → 9
I 被減去,因為它小於 X

結論

這個解決方案透過使用簡單的比較技術,優雅地處理羅馬數字到整數的轉換。該程式碼簡潔但功能強大,足以處理所有有效的羅馬數位輸入。

以上是LeetCode:羅馬數字到整數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板