Ad
Code
Diff
  • using System;
    
    public class RomanDecode
    {
      public static int GetCharacter(char character) {
        switch (character) {
            case 'I': return 1;
            case 'V': return 5;
            case 'X': return 10;
            case 'L': return 50;
            case 'C': return 100;
            case 'D': return 500;
            case 'M': return 1000;
            default: throw new NotImplementedException();
        }  
      }
      
    	public static int Solution(string roman)
    	{
    		var result = 0;
        var lastCharacter = 0;
        for (var i = roman.Length - 1; i >= 0; i--) {
          var character = GetCharacter(roman[i]);
          if (character >= lastCharacter) {
            result += character;
          } else {
            result -= character;
          }
          lastCharacter = character;
        }
        return result;
    	}
    }
    • package kata
    • using System;
    • func Decode(roman string) int {
    • return 0
    • public class RomanDecode
    • {
    • public static int GetCharacter(char character) {
    • switch (character) {
    • case 'I': return 1;
    • case 'V': return 5;
    • case 'X': return 10;
    • case 'L': return 50;
    • case 'C': return 100;
    • case 'D': return 500;
    • case 'M': return 1000;
    • default: throw new NotImplementedException();
    • }
    • }
    • public static int Solution(string roman)
    • {
    • var result = 0;
    • var lastCharacter = 0;
    • for (var i = roman.Length - 1; i >= 0; i--) {
    • var character = GetCharacter(roman[i]);
    • if (character >= lastCharacter) {
    • result += character;
    • } else {
    • result -= character;
    • }
    • lastCharacter = character;
    • }
    • return result;
    • }
    • }