2023年1月16日 星期一

13. Roman to Integer

解題思路

特殊情況:左值 < 右值,要用 右 - 左 處理。

程式碼

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;
    }
};

沒有留言:

張貼留言