15 Jun 2024C++ / Python / TypeScriptEasy

Roman to Integer

Collected C++, Python, TypeScript solutions for roman to integer. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Roman to Integer. the solution files are available below.

solution files

  • C++ roman-to-integer/synced-solution.cpp
  • Python roman-to-integer/synced-solution.py
  • TypeScript roman-to-integer/synced-solution.ts

Solution files

Pythonroman-to-integer/synced-solution.py
class Solution:
    def romanToInt(self, s: str) -> int:
        vals = {class="syntax-string">'I':class="syntax-number">1,class="syntax-string">'V':class="syntax-number">5,class="syntax-string">'X':class="syntax-number">10,class="syntax-string">'L':class="syntax-number">50,class="syntax-string">'C':class="syntax-number">100,class="syntax-string">'D':class="syntax-number">500,class="syntax-string">'M':class="syntax-number">1000}
        res = class="syntax-number">0
        for i in range(len(s)):
            if i+class="syntax-number">1 < len(s) and vals[s[i]] < vals[s[i+class="syntax-number">1]]:
                res -= vals[s[i]]
            else:
                res += vals[s[i]]
        return res
C++roman-to-integer/synced-solution.cpp
class Solution {
public:
    int romanToInt(string s) {
        unordered_map<char,int> vals={{class="syntax-string">'I',class="syntax-number">1},{class="syntax-string">'V',class="syntax-number">5},{class="syntax-string">'X',class="syntax-number">10},{class="syntax-string">'L',class="syntax-number">50},{class="syntax-string">'C',class="syntax-number">100},{class="syntax-string">'D',class="syntax-number">500},{class="syntax-string">'M',class="syntax-number">1000}};
        int res = class="syntax-number">0;
        for (int i = class="syntax-number">0; i < s.size(); i++) {
            if (i+class="syntax-number">1 < s.size() && vals[s[i]] < vals[s[i+class="syntax-number">1]]) res -= vals[s[i]];
            else res += vals[s[i]];
        }
        return res;
    }
};
TypeScriptroman-to-integer/synced-solution.ts
function romanToInt(s: string): number {
    const vals: {[k:string]:number} = {I:class="syntax-number">1,V:class="syntax-number">5,X:class="syntax-number">10,L:class="syntax-number">50,C:class="syntax-number">100,D:class="syntax-number">500,M:class="syntax-number">1000};
    let res = class="syntax-number">0;
    for (let i = class="syntax-number">0; i < s.length; i++) {
        if (i+class="syntax-number">1 < s.length && vals[s[i]] < vals[s[i+class="syntax-number">1]]) res -= vals[s[i]];
        else res += vals[s[i]];
    }
    return res;
}