#力扣:13. 罗马数字转整数@FDDLC

13. 罗马数字转整数

一、Java

import java.util.HashMap;

class Solution {
    public int romanToInt(String s) {
        HashMap m = new HashMap<>() {{
            put('I', 1);
            put('V', 5);
            put('X', 10);
            put('L', 50);
            put('C', 100);
            put('D', 500);
            put('M', 1000);
        }};
        char[] a = s.toCharArray();
        int sum = m.get(a[0]);
        for (int i = 1; i < a.length; i++) {
            sum += m.get(a[i]);
            if (m.get(a[i - 1]) < m.get(a[i])) sum -= m.get(a[i - 1]) * 2;
        }
        return sum;
    }
}

二、C++

#include 
#include 

using namespace std;

class Solution {
public:
    int romanToInt(string s) {
        unordered_map m = {{'I', 1},
                                      {'V', 5},
                                      {'X', 10},
                                      {'L', 50},
                                      {'C', 100},
                                      {'D', 500},
                                      {'M', 1000}};
        int sum = m[s[0]];
        for (int i = 1; i < s.length(); i++) {
            sum += m[s[i]];
            if (m[s[i - 1]] < m[s[i]]) sum -= m[s[i - 1]] * 2;
        }
        return sum;
    }
};

三、Python

class Solution:
    def romanToInt(self, s: str) -> int:
        m = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
        sum = m[s[0]]
        for i in range(1, len(s)):
            sum += m[s[i]]
            if m[s[i - 1]] < m[s[i]]:
                sum -= m[s[i - 1]] * 2
        return sum

四、JavaScript

var romanToInt = function (s) {
    let m = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000};
    let sum = m[s[0]];
    for (i = 1; i < s.length; i++) {
        sum += m[s[i]];
        if (m[s[i - 1]] < m[s[i]])
            sum -= m[s[i - 1]] * 2;
    }
    return sum;
};

五、Go

package main

func romanToInt(s string) int {
	m := map[uint8]int{'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
	sum := m[s[0]]
	for i := 1; i < len(s); i++ {
		sum += m[s[i]]
		if m[s[i-1]] < m[s[i]] {
			sum -= m[s[i-1]] * 2
		}
	}
	return sum
}

你可能感兴趣的:(力扣刷题:Java,C++,Python,JS,Go,leetcode,算法)