xxxxxxxxxx
public int RomanToInt(string s)
{
if (s == null || s == string.Empty)
return 0;
Dictionary<string, int> dict = new Dictionary<string, int>();
int result = 0;
dict.Add("I", 1);
dict.Add("V", 5);
dict.Add("X", 10);
dict.Add("L", 50);
dict.Add("C", 100);
dict.Add("D", 500);
dict.Add("M", 1000);
dict.Add("IV", 4);
dict.Add("IX", 9);
dict.Add("XL", 40);
dict.Add("XC", 90);
dict.Add("CD", 400);
dict.Add("CM", 900);
for (int i = 0; i < s.Length; i++)
if ((s[i] == 'I' || s[i] == 'X' || s[i] == 'C') && i < s.Length - 1 && dict.ContainsKey(s.Substring(i, 2)))
result += dict[s.Substring(i++, 2)];
else
result += dict[s[i].ToString()];
return result;
}
xxxxxxxxxx
public class Solution
{
readonly Dictionary<char, int> dict = new Dictionary<char, int>
{{'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000}};
public int RomanToInt(string s)
{
//special situations
s = s.Replace("IV","IIII");
s = s.Replace("IX","VIIII");
s = s.Replace("XL","XXXX");
s = s.Replace("XC","LXXXX");
s = s.Replace("CD","CCCC");
s = s.Replace("CM","DCCCC");
int result = 0;
foreach(var ch in s)
{
result += dict[ch];
}
return result;
}
}
xxxxxxxxxx
string[] s = { "I", "V", "X", "L", "C", "D", "M" };
int[] r = { 1, 5, 10, 50, 100, 500, 1000 };
string roman;
roman = Console.ReadLine();
int n = 0;
for (int i = 0; i < roman.Length; i++)
{
for (int j = 0; j < s.Length; j++)
{
if (roman[i].ToString() == s[j])
{
for (int k = 0; k < s.Length; k++)
{
if (i + 1 < roman.Length)
{
if (roman[i + 1].ToString() == s[k])
{
if (k > j)
{
n -= r[j];
}
else
{
n += r[j];
}
break;
}
}
else
{
n += r[j];
break;
}
}
break;
}
}
}
Console.WriteLine(n);
xxxxxxxxxx
var romanToInt = function (s) {
const object = {
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
}
let count =0
console.log(object)
for(i =0; i<s.length;i++){
const cur = object[s[i]]
const next = object[s[i+1]]
if(cur<next){
count += next-cur
i++
}else{
count+= cur
}
}
return count
};
xxxxxxxxxx
class Solution {
/**
* @param String $s
* @return Integer
*/
function romanToInt($s) {
}
}