LEETCODE: Roman to Integer

来源:互联网 发布:java模拟http上传文件 编辑:程序博客网 时间:2024/05/16 15:39

这题不难,但是不甚了解罗马数字的规律,参考了别人的代码。

关键点在于罗马数字,IV = 4, VI = 6。相邻的两个字符是由规律的,如果前面大于后面,则值相加。否则相减。

class Solution {//I V X L C D M//find out the regular patternpublic:int romanToInt(string s) {if (s.size() == 0) return 0;map<char, int> m;m['I'] = 1;m['V'] = 5;m['X'] = 10;m['L'] = 50;m['C'] = 100;m['D'] = 500;m['M'] = 1000;int length = s.size();int resultval = m[s[length - 1]];for(int ii = length - 2; ii >= 0; ii --){    if(m[s[ii]] >= m[s[ii + 1]])        resultval += m[s[ii]];    else        resultval -= m[s[ii]];}return resultval;}};


0 0
原创粉丝点击