
LeetCode 13 罗马数字转整数和第 12 题反过来规则就一条小的在大的左边就减。 罗马数字转整数III → 3IV → 4LVIII → 58罗马数字多数情况大数在左小数在右加起来就行。例外是小在大左IV、IX此时小数要减掉。遍历时当前值小于下一位就减否则加。publicintromanToInt(Strings){intres0;for(inti0;is.length();i){intcurmap(s.charAt(i));intnexti1s.length()?map(s.charAt(i1)):0;rescurnext?-cur:cur;}returnres;}privateintmap(charc){returnswitch(c){caseI-1;caseV-5;caseX-10;caseL-50;caseC-100;caseD-500;caseM-1000;default-0;};}七种字符映射用 switch 比 HashMap 快。最后一位没有 next 取 0cur 0 肯定走加的分支。这道题你踩过什么坑或者你用别的语言实现过吗评论区聊聊回头复习也方便翻。