首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode Roman to Integer:羅馬數字轉整數的單次掃描法

     編輯:關於C++

羅馬數字規則

字符值
I1
V5
X10
L50
C100
D500
M1000

規則:同字符重複相加(III=3);小值在大值左側表示減法(IV=4, IX=9, XL=40, XC=90, CD=400, CM=900);否則相加。

從右向左掃描算法

維護 prev 為右側字符值。當前字符值 cur:
- 若 cur < prev → 減法,ans -= cur。
- 否則 → 加法,ans += cur。
更新 prev = cur。
初始 prev = 0,從最右字符開始。

C++ 實現

輸入輸出解析
III31+1+1
IV45-1
IX910-1
LVIII5850+5+1+1+1
MCMXCIV19941000+(1000-100)+(100-10)+(5-1)

							
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved