[leetcode] Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
https://oj.leetcode.com/problems/roman-to-integer/
思路1:从前向后遍历罗马数字,如果某个数比前一个数小,则加上该数。反之,减去前一个数的两倍然后加上该数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public class Solution { public int romanToInt(String s) { char [] symbol = { 'I' , 'V' , 'X' , 'L' , 'C' , 'D' , 'M' }; int [] val = { 1 , 5 , 10 , 50 , 100 , 500 , 1000 }; Map<Character, Integer> map = new HashMap<Character, Integer>(); for ( int i = 0 ; i < symbol.length; i++) map.put(symbol[i], val[i]); int len = s.length(); int res = 0 ; res += map.get(s.charAt( 0 )); for ( int i = 1 ; i < len; i++) { int cur = map.get(s.charAt(i)); int pre = map.get(s.charAt(i - 1 )); if (cur <= pre) { res += cur; } else { res = res + cur - 2 * pre; } } return res; } public static void main(String[] args) { System.out.println( new Solution().romanToInt( "MCMXC" )); } } |
参考:
http://blog.csdn.net/wzy_1988/article/details/17057929
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)