#include <unordered_map>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param cowsRomanNumeral string字符串vector
* @return int整型
*/
int sumOfRomanNumerals(vector<string>& cowsRomanNumeral) {
// write code here
// 哈希表+数学
unordered_map<char, int> um;
um['I'] = 1;
um['V'] = 5;
um['X'] = 10;
um['L'] = 50;
um['C'] = 100;
um['D'] = 500;
um['M'] = 1000;
int ans = 0;
for(auto str:cowsRomanNumeral)
{
// 从右到左遍历字符串
int t = 0;
for(int i=str.size()-1; i>=0; --i)
{
if(i==str.size()-1)
t += um[str[i]];
else
{
// 右边的大
if(um[str[i]]<um[str[i+1]])
t -= um[str[i]];
// 右边的小或左右相等
else
t += um[str[i]];
}
}
ans += t;
}
return ans;
}
};