Roman numerals to integers

前端 未结 14 940
不思量自难忘°
不思量自难忘° 2020-12-05 20:56

I have a transfer with products that unfortunately has to get matched by product name. The biggest issue here is I might get duplicate products on account of roman numbers.

14条回答
  •  被撕碎了的回忆
    2020-12-05 21:39

    I refer from this blog. You could just reverse the roman numeral , then all the thing would be more easier compare to make the comparison.
    public static int pairConversion(int dec, int lastNum, int lastDec) { if (lastNum > dec) return lastDec - dec; else return lastDec + dec; }

        public static int ConvertRomanNumtoInt(string strRomanValue)
        {
            var dec = 0;
            var lastNum = 0;
            foreach (var c in strRomanValue.Reverse())
            {
                switch (c)
                {
                    case 'I':
                        dec = pairConversion(1, lastNum, dec);
                        lastNum = 1;
                        break;
                    case 'V':
                        dec=pairConversion(5,lastNum, dec);
                        lastNum = 5;
                        break;
                    case 'X':
                        dec = pairConversion(10, lastNum, dec);
                        lastNum = 10;
                        break;
                    case 'L':
                        dec = pairConversion(50, lastNum, dec);
                        lastNum = 50;
                        break;
                    case 'C':
                        dec = pairConversion(100, lastNum, dec);
                        lastNum = 100;
                        break;
                    case 'D':
                        dec = pairConversion(500, lastNum, dec);
                        lastNum = 500;
                        break;
                    case 'M':
                        dec = pairConversion(1000, lastNum, dec);
                        lastNum = 1000;
                        break;
                }
            }
            return dec;
    
        }
    

提交回复
热议问题