給定乙個羅馬數字,將其轉換成整數。
返回的結果要求在 1 到 3999 的範圍內。
羅馬數字:
羅馬數字是阿拉伯數字傳入之前使用的一種數碼。羅馬數字採用七個羅馬字母作數字、即ⅰ(1)、x(10)、c(100)、m(1000)、v(5)、l(50)、d(500)。
記數的方法:
1、相同的數字連寫,所表示的數等於這些數字相加得到的數,如 ⅲ=3;
2、小的數字在大的數字的右邊,所表示的數等於這些數字相加得到的數,如 ⅷ=8、ⅻ=12;
3、小的數字(限於 ⅰ、x 和 c)在大的數字的左邊,所表示的數等於大數減小數得到的數,如 ⅳ=4、ⅸ=9;
4、在乙個數的上面畫一條橫線,表示這個數增值 1,000 倍
思路:
使用map存放羅馬數字和數字
羅馬數字: 當相同數連寫 或 小數在大數右邊時,直接加,所以一直直接加;
當小數在大數左邊時,要減去小數,此時因為小數在左邊已經加過一次了,所以減去小數的2倍。
**:static const auto __ = ()();
class solution {
public:
int romantoint(string s) {
mapm;
int result,pos,curr; //curr表示當前數字,pos記錄上次數字
m['i']=1;
m['x']=10;
m['c']=100;
m['m']=1000;
m['v']=5;
m['l']=50;
m['d']=500;
pos=m[s[0]];
if(s.size()==1) return pos;
result=pos;
for(int i=1;i
羅馬數字轉整數
羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在大的數...
羅馬數字轉整數
羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在大的數字...
整數轉羅馬數字
題目 羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在...