[LeetCoce 13] Roman to Integer 罗马数字转化为数字

来源:互联网 发布:java jsch jar下载 编辑:程序博客网 时间:2024/05/16 07:01

Given a roman numeral, convert it to an integer.

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

Note: I got this problem in one interview. 

First of all. what is Roman number. We can check the blog about Roman Number.

Then, we need to know very clear how the roman number to calculate the numbers. 

  1.  when the digits are the same, then we only need to add them together,
  2. if small number is behind the large number, add the number together.
  3. if small number is before the large number, then the number should be the larger number minus the smaller number.

class Solution {public:    int romanToInt(string s) {        int result = 0;        if(s.size() <= 0) return 0;                for(int i = 0; i< s.size() ; i++){            if((i > 0) && (rtoi(s[i]) > rtoi(s[i - 1]))){                result += rtoi(s[i]) - 2 * rtoi(s[i - 1]) ;            }else{                result += rtoi(s[i]);            }        }        return result;    }private:    int rtoi(char c){        switch(c){            case 'I':                return 1;                break;            case 'V':                return 5;                break;            case 'X':                return 10;                break;            case 'L':                return 50;                break;            case 'C':                return 100;                break;            case 'D':                return 500;                break;            case 'M':                return 1000;                break;            default:                return 0;                break;        }       }};



0 0