解題思路
特殊情況:左值 < 右值,要用 右 - 左 處理。
程式碼
class Solution { public: int romanToInt(string s) { map<char, int> mp; mp['I'] = 1; mp['V'] = 5; mp['X'] = 10; mp['L'] = 50; mp['C'] = 100; mp['D'] = 500; mp['M'] = 1000; int value = 0; for(int i=0; i<s.size(); i++) { if((i != s.size() - 1) && mp[s[i]] < mp[s[i+1]]) { value += mp[s[i+1]] - mp[s[i]]; i++; } else { value += mp[s[i]]; } } return value; } };
沒有留言:
張貼留言