刷題 整數和羅馬數字轉換

2021-08-18 07:09:06 字數 846 閱讀 7157

實現羅馬數字與整數的互轉。 數字大小為[1, 3999]之間。

羅馬數字只有7個字母組成,每個字母**的字如下

字母 m d c l x v i

代表數字 1000 500 100 50 10 5 1

四個規則

相同的數字連寫, 所表示的數等於這些數字相加得到的數。如 ***表示 30

小的數字在大的數字的右邊, 所表示的數等於這些數字相加得到的數 如viii 表示8

小的數字(限於i, x, c)在大的數字的左邊, 所表示的數等於大數減去小的數: 如iv 表示4

在乙個數的上面畫一條橫線, 表示這個數增值1000倍(由於題目只考慮4000以內的數,所以這條規則不用考慮)。

class solution ;

vector

value=;

for(int i=0;iint count=num/key[i];

for(int j=0;jreturn res;

}};

羅馬數字轉換為integer

/*

分析:從前往後掃瞄,用乙個臨時變數記錄分段數字

如果當前比前乙個大,說明這一段的值應該是當前這個值減去上乙個值。

比如:iv=5-1;

否則,將當前值加入到結果中,然後開始下一段記錄。

比如:vi=5+1,ii=1+1

*/class solution

}int romantoint(string s)

else

}return result;

}};

LeetCode刷題 羅馬數字轉整數

羅馬數字包含以下七種字元 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 通常情況下,羅馬數字中...

leetcode刷題 013羅馬數字轉整數

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中小...

Leetcode刷題(13 羅馬數字轉整數)

羅馬數字包含以下七種字元 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 通常情況下,羅馬數字中...