写点什么

LeetCode 题解:13. 罗马数字转整数,哈希表,JavaScript,详细注释

作者:Lee Chen
  • 2023-11-23
    福建
  • 本文字数:571 字

    阅读完需:约 2 分钟

原题链接:13. 罗马数字转整数


解题思路:


  1. 本题涉及到的罗马数字都是唯一的,因此可以创建一个哈希表,存储罗马数字和整数的对应关系。

  2. 遍历s,分别截取从i开始的 2 位和 1 位字符串,查看其在哈希表中的罗马数字对应的整数,将其加和到结果中。


/** * @param {string} s * @return {number} */var romanToInt = function (s) {  // 创建罗马数字与整数的对应关系,可以看到它们互相是不重复的  // 每次只需要截取s中的部分字符,在Map中查询对应的整数即可  const map = new Map([    ['M', 1000],    ['CM', 900],    ['D', 500],    ['CD', 400],    ['C', 100],    ['XC', 90],    ['L', 50],    ['XL', 40],    ['X', 10],    ['IX', 9],    ['V', 5],    ['IV', 4],    ['I', 1],  ])  // 储存结果  let result = 0
// 遍历s,查询罗马数字对应的整数 for (let i = 0; i < s.length; ) { // 截取两个字符,查看是否满足两位罗马数字 if (map.has(s.substr(i, 2))) { // 将对应的整数加和到result result += map.get(s.substr(i, 2)) // 计算了2位罗马数字,指针向后移动2位 i += 2 } else { // 将对应的整数加和到结果 result += map.get(s.substr(i, 1)) // 计算了1位罗马数字,指针向后移动1位 i += 1 } }
return result}
复制代码


发布于: 刚刚阅读数: 2
用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:13. 罗马数字转整数,哈希表,JavaScript,详细注释_JavaScript_Lee Chen_InfoQ写作社区