public int RomanToInt(string s)
char[] arrayWithChars = s.ToCharArray();
char[] alphabet = { 'I', 'V', 'X', 'L', 'C', 'D', 'M' };
int[] digitAlphabet = { 1, 5, 10, 50, 100, 500, 1000 };
int[] resultIndexes = new int[arrayWithChars.Length];
int[] resultDigits = new int[resultIndexes.Length];
for (var i = 0; i < arrayWithChars.Length; i++)
var inputCharIndexInAlphabet = Array.IndexOf(alphabet, arrayWithChars[i]);
if (inputCharIndexInAlphabet != -1)
resultIndexes[i] = inputCharIndexInAlphabet;
for (var i = 0; i < resultIndexes.Length; i++)
if (resultIndexes[i] <= resultIndexes[i - 1])
resultDigits[i] = digitAlphabet[resultIndexes[i]];
resultDigits[i + 1] = digitAlphabet[resultIndexes[i + 1]];
else if (resultIndexes[i] > resultIndexes[i - 1])
else if (resultIndexes[i] > resultIndexes[i + 1])
resultDigits[i] = digitAlphabet[resultIndexes[i]];
if (resultIndexes[i] <= resultIndexes[i + 1])
resultDigits[i] = digitAlphabet[resultIndexes[i]];
resultDigits[i + 1] = digitAlphabet[resultIndexes[i + 1]];
else if (resultIndexes[i] > resultIndexes[i + 1])
resultDigits[i] = digitAlphabet[resultIndexes[i]];
resultDigits[i] = digitAlphabet[resultIndexes[i]];
foreach (var el in resultIndexes)
Console.WriteLine("index is " + el);
foreach (var el in resultDigits)
Console.WriteLine("digit is " + el);
return arrayWithChars.Length;
public static void Main()
Solution a = new Solution();
Console.WriteLine(a.RomanToInt("CDXLIV"));