羅馬數字包含以下七種字元:i
,v
,x
,l
,c
,d
和m
。
字元 數值
i 1
v 5
x 10
l 50
c 100
d 500
m 1000
例如, 羅馬數字 2 寫做ii
,即為兩個並列的 1。12 寫做xii
,即為x
+ii
。 27 寫做xxvii
, 即為xx
+v
+ii
。
通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做iiii
,而是iv
。數字 1 在數字 5 的左邊,所表示的數等於大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為ix
。這個特殊的規則只適用於以下六種情況:
給定乙個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的範圍內。
示例 1:
輸入: "iii"
輸出: 3
示例 2:
輸入: "iv"
輸出: 4
示例 3:
輸入: "ix"
輸出: 9
示例 4:
輸入: "lviii"
輸出: 58
解釋: l = 50, v= 5, iii = 3.
示例 5:
輸入: "mcmxciv"
輸出: 1994
解釋: m = 1000, cm = 900, xc = 90, iv = 4.
class solution:
def romantoint(self, s: str) -> int:
a =
sum = 0
i = 0
while true:
if i < len(s)-1:
if a[s[i]]sum = sum-a[s[i]]
else:
sum = sum+a[s[i]]
elif i==len(s)-1:
sum = sum+a[s[i]]
else:
break
i=i+1
return sum
刷題(leetcode字串相關)
125.驗證回文字串 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。思路 將字串中的大寫字母轉成小寫,只保留字母和數字,然後將字串與這個字串的反轉作比較 var ispalindrome function s 對比字串和字...
刷題(leetcode字串相關)
38.報數 報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 思路 對前乙個數進行報數,首先遍歷n,把從2開始記錄n的每個數,通過遍歷字串求解遍歷的每個數 var countandsay function n else str newstr return str 67...
leetcode刷題之字串
解法 先建立乙個字典,注意長度為2的字串的值 右邊的值 左邊的值 遍歷字串每個字元,判斷當前字元和前乙個字元是否出現在字典中的六種情況特殊情況,如果在就記錄對應的value,否則取當前key對應的value。注意 1.max函式在這裡是為了防止遍歷第乙個字元的時候出現 1 0 的情況。2.本題主要是...