Leetcode-13:罗马数字转整数

个人思路总结:

建立一个哈希表(其实在C++里面就是map容器),将符号和对应的数值一一映射到哈希表中(key为字符,value为数值)。然后对输入字符串一一从左往右遍历,如果当前字符对应的数值小于其右边字符对应的数值,则用当前结果减去该数值。否则,加上该数值。

代码如下:

class Solution {
public:
    int romanToInt(string s) {
        map hashmap;
        int result = 0;
        int num_range[] = {1000,500,100,50,10,5,1};
        char reps[] = {'M','D','C','L','X','V','I'};
        for(int i=0;i<7;i++)
            hashmap[reps[i]] = num_range[i];
        int i=0;
        for(i=0;i

你可能感兴趣的:(个人leetcode总结)