6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 varromanToInt =function(s) { varobj = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000 } varres = 0 for(vari = 0; i obj[s[i]]) { res -= obj[s[i]] }else{ res += obj[s[i]] } } return...
js bin 方法/步骤 1 打开编辑器。2 创建一个函数。3 创建一个对象。4 设置结果变量。5 创建循环。6 执行一下得到结果。注意事项 其实就是哈希表
结语 一道基础入门的算法题,js的精度问题导致无法利用位运算提高运算速度,利用哈希表键值绑定替代繁琐的条件语句,遍历累加得到转换结果。
一道基础入门的算法题,js的精度问题导致无法利用位运算提高运算速度,利用哈希表键值绑定替代繁琐的条件语句,遍历累加得到转换结果。
https://leetcode-cn.com/problems/roman-to-integer/ 练习使用JavaScript解答 /** * @param {string} s * @return {number} */ var romanToInt = function(s) { var stu = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, ...
罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符数值I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是...
// 技巧:映射关系优先考虑hash这种数据结构(对应 JS的Map )varromanToInt=function(s){// 1)建立所有的“数据映射集”constl=s.length,map=newMap([['I',1],['V',5],['X',10],['L',50],['C',100],['D',500],['M',1000]]);letindex=0,resNum=0;// 2)根据情况去分别做“加、减法...
我是用的是js 利用哈希算法 存储罗马数字 然后遍历字符串在计算一下就OK啦
294 231 141.6K 101 1K 365.7K 518 14 2.9K 17 2 255 0 2 244 0 476 53.9K 116 0 2K 0 1 1.2K 0 3 1.7K 0 0 949 0 0 1.4K 1 1 1.1K 1 0 660 1 C++ 智能模式 1 2 3 4 5 6 classSolution{ public: intromanToInt(strings) { ...
leetCode-- 12题(JS):整数转罗马数字 问题: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 image.png 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也...