题解 | #牛牛的罗马时代节日#

牛牛的罗马时代节日

https://www.nowcoder.com/practice/97447e046b704ffda3f51281bd7e296b

#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;
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务