Leetcode 13 羅馬數字轉整數 C

2021-10-03 03:03:47 字數 702 閱讀 9804

思路:建立羅馬數字和整數的對映,從前到後如果前邊乙個羅馬數字的值小於後邊,則相減,否則相加

class

solution,,

,,,,

};int len=s.

length()

;int ans=0;

for(

int i=

0; i)else

}else

ans+

=(hm[s[i]])

;}return ans;

}

思路:與上述解法思路相似,只是map換做了陣列

class

solution

;int c[7]

;for

(int i=

0;isize()

-1;i++

)int k=0;

while

(s[s.

size()

-1]!=a[k]

) k++

; x=x+c[k]

;return x;}}

;

提交結果顯示,用陣列的效率要遠大於map

推測原因是map的儲存和查詢因為涉及到很多函式的呼叫,會產生很大的系統開銷,所以下次遇到類似的問題可以優先考慮陣列

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。通常情況下,羅馬數字中小的數字在大的數字...

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。通常情況下,羅馬數字中小的數字在大的數字的...

Leetcode 13 羅馬數字轉整數

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