LeetCode-Roman to Integer

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

class Solution {
public:
    int romanToInt(string s) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        int lastValue=0;
        int value;
        int total=0;
        for(unsigned int i=0;i<s.size();i++){
            char c= s.c_str()[i];
            if(c=='I'){
                value=1;  
            }
            else if(c=='V'){
                value=5;
            }
            else if(c=='X'){
                value=10;
            }
            else if(c=='L'){
                value=50;
            }
            else if(c=='C'){
                value=100;
            }
            else if(c=='D'){
                value=500;
            }
            else if(c=='M'){
                value=1000;
            }
            else return 0;
            if(value>lastValue){
                total-=2*lastValue;
                total+=value;
            }
            else{
                total+=value;
            }
            lastValue=value;
        }
        return total;
    }
};

 

posted @ 2013-09-02 23:34  懒猫欣  阅读(165)  评论(0编辑  收藏  举报