leetcode (13) - ROMAN TO INT

class Solution {
public:
    int romanToInt(string s) {
        int ret = toNumber(s[0]);
        for (int i = 1; i < s.length(); i++) {
            if (toNumber(s[i - 1]) < toNumber(s[i])) {
                ret += toNumber(s[i]) - 2 * toNumber(s[i - 1]);
            } else {
                ret += toNumber(s[i]);
            }
        }
        return ret;
    }
    
    int toNumber(char ch) {
        switch (ch) {
            case 'I': return 1;
            case 'V': return 5;
            case 'X': return 10;
            case 'L': return 50;
            case 'C': return 100;
            case 'D': return 500;
            case 'M': return 1000;
        }
        return 0;
    }
};

發佈了23 篇原創文章 · 獲贊 19 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章