• 13. 罗马数字转整数(C#)


    看到这道题,存在键值对,所以先建个泛型字典,把键值填进去。

    由于这道题存在两个字符表示一个数字的情况,所以在for循环的时候判断一下,看看当前字符串中循环到的字符是否和下一个字符能够组成存在在字典里的键值对,如果能,把值加上,跳过下一个字符进入下下个字符循环,如果不能正常匹配就行了

    public class Solution {
        public int RomanToInt(string s) {
            Dictionary<string, int> map = new Dictionary<string, int>();
                map.Add("I", 1);
                map.Add("IV", 4);
                map.Add("V", 5);
                map.Add("IX", 9);
                map.Add("X", 10);
                map.Add("XL", 40);
                map.Add("L", 50);
                map.Add("XC", 90);
                map.Add("C", 100);
                map.Add("CD", 400);
                map.Add("D", 500);
                map.Add("CM", 900);
                map.Add("M", 1000);
                int num = 0;
                for (int i = 0; i < s.Length; i++)
                {
                    string a = "";
                    if ((i + 1) < s.Length)
                    {
                         a = s[i].ToString() + s[i + 1].ToString();
                    }
                    if (map.ContainsKey(a))
                    {
                        num += map[a];
                        i++;
                    }
                    else
                    {
                        num += map[s[i].ToString()];
                    }
                }
                return num;
        }
    }
    

      

  • 相关阅读:
    远程仓库拉取项目到本地并修改提交
    Django之URLconf路由
    Django简介以及安装
    Web开发介绍
    Python与MySQL数据库连接
    PyCharm快捷键
    python爬取有道翻译
    Vue相关知识总结
    Ajax相关介绍
    CSS中的定位
  • 原文地址:https://www.cnblogs.com/bucai/p/11867423.html
Copyright © 2020-2023  润新知