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
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.
roman-to-integer/synced-solution.cpproman-to-integer/synced-solution.pyroman-to-integer/synced-solution.tsclass 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
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;
}
};
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;
}