羅馬數字包含以下七種字元:i
,v
,x
,l
,c
,d
和m
。
字元數值i1
v5x10
l50c100
d500
m1000
例如, 羅馬數字 2 寫做ii
,即為兩個並列的 1。12 寫做xii
,即為 x + ii 。 27 寫做xxvii
, 即為 xx + v + ii 。
通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做 iiii,而是iv
。數字 1 在數字 5 的左邊,所表示的數等於大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為ix
。這個特殊的規則只適用於以下六種情況:
給定乙個整數,將其轉為羅馬數字。輸入確保在 1 到 3999 的範圍內。
輸入: 3輸出: 「iii」
輸入: 4輸出: 「iv」
輸入: 9輸出: 「ix」
輸入: 58輸出: 「lviii」
解釋: l = 50, v = 5, iii = 3.
輸入: 1994我們將羅馬數字與阿拉伯數字的組合先列出來,然後由到到小來進行轉換輸出: 「mcmxciv」
解釋: m = 1000, cm = 900, xc = 90, iv = 4.
class
solution
:def
inttoroman
(self, num:
int)
->
str:
int_to_roman =[(
1000
,"m"),
(900
,"cm"),
(500
,"d"),
(400
,"cd"),
(100
,"c"),
(90,"xc"),
(50,"l"),
(40,"xl"),
(10,"x"),
(9,"ix"),
(5,"v"),
(4,"iv"),
(1,"i")]
#用來儲存整數轉羅馬數字的資訊
roman_num =
""for number,roman in int_to_roman:
#用來儲存整數和餘數部分
#整數表示重複的次數
count,num =
divmod
(num,number)
roman_num += roman * count
#當餘數為0時結束迴圈
if num ==0:
break
return roman_num
參考:
leetcode詳細題解
python實現將中文日期轉換為數字日期
1 說明 這篇文章是幫乙個群友解答的問題。他有乙個需求,就是對於日期的錄入都是中文形式的,需要轉換為數字形式的。由於python庫中沒有函式直接進行轉換,因此我寫了本篇文章。2 測試源資料如下 3 如下 df pd.read excel r c users 黃偉 desktop chinese en...
java實現將漢語轉換為拼音
這幾天在做專案的時候用到了通過拼音去資料庫表裡面去模糊查詢漢語字段,剛開始的時候感覺特別神奇,查了好多資料,直接去模糊查詢是能實現的,但是貌似很複雜。所以最終取了乙個比較容易的方案,就是給資料庫表裡面新加了乙個拼音字段。完美的解決了這個問題,雖說可以這麼幹,但是資料這麼多,全部轉換為拼音 人乙個乙個...
python實現羅馬數字轉換為整數
輸入 iii 輸出 3 輸入 iv 輸出 4 輸入 ix 輸出 9 輸入 lviii 輸出 58 解釋 l 50,v 5,iii 3.輸入 mcmxciv 輸出 1994 解釋 m 1000,cm 900,xc 90,iv 4.其實實現的思路很簡單,我們就先建立羅馬數字與阿拉伯數字對應的字典,然後再...