1. 程式人生 > >leetcode_羅馬數轉整數

leetcode_羅馬數轉整數

羅馬數字wiki上已經講得比較清楚了,

對於本題,只要把握好下面兩點即可:

1、如果一個數是最後一位或者比前面的數大於等於,加上這個數

2、否則,減去這個數

 1 class Solution {
 2 public:
 3     int romanToInt(string s) {
 4         int ans = 0;
 5         unordered_map<char,int> m{
 6             {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000
} 7 }; 8 for(int i = 0; i < s.size(); i++) { 9 int tmp = m[s[i]]; 10 if(i == s.size()-1 || m[s[i+1]] <= tmp) ans += tmp; 11 else ans -= tmp; 12 } 13 return ans; 14 } 15 };