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

牛牛的罗马时代节日

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

题目考察的知识点:哈希

题目解答方法的文字分析:小数在大数的左边,那么就是相减;如果将之前的小数是按加数算,那么需要减2倍的小数。

本题解析所用的编程语言:c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param cowsRomanNumeral string字符串vector 
     * @return int整型
     */
    int sumOfRomanNumerals(vector<string>& cowsRomanNumeral) {
        // write code here
        unordered_map<char, int> mp;
        mp.insert(pair('I', 1));
        mp.insert(pair('V', 5));
        mp.insert(pair('X', 10));
        mp.insert(pair('L', 50));
        mp.insert(pair('C', 100));
        mp.insert(pair('D', 500));
        mp.insert(pair('M', 1000));
        int ret = 0;
        for (int i = 0; i < cowsRomanNumeral.size(); ++i)
        {
            for (int j = 0; j < cowsRomanNumeral[i].size(); ++j)
            {
                if (j >= 1 && mp[cowsRomanNumeral[i][j - 1]] < mp[cowsRomanNumeral[i][j]])
                {
                    ret -= mp[cowsRomanNumeral[i][j - 1]] * 2;
                }
                ret += mp[cowsRomanNumeral[i][j]];
            }
        }
        return ret;
    }
};

全部评论

相关推荐

迷茫的大四🐶:💐孝子启动失败,改为启动咏鹅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务