13. 罗马数字转整数 Roman to Integer
Roman numerals are represented by seven different symbols: I
, V
, X
, L
, C
, D
and M
.
For example, 2
is written as II
in Roman numeral, just two one's added together. 12
is written as XII
, which is simply X + II
. The number 27
is written as XXVII
, which is XX + V + II
.
Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII
. Instead, the number four is written as IV
. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX
. There are six instances where subtraction is used:
I
can be placed beforeV
(5) andX
(10) to make 4 and 9.X
can be placed beforeL
(50) andC
(100) to make 40 and 90.C
can be placed beforeD
(500) andM
(1000) to make 400 and 900.
Given a roman numeral, convert it to an integer.
public int romanToInt(String s) { char [] str = s.toCharArray(); int n = s.length(); int ans = 0; for (int i = 0; i < n; i++){ switch (str[i]){ case 'M' : ans += 1000;break; case 'D' : ans += 500; break; case 'C' : if( i + 1 < n && (str[i + 1] == 'M' || str[i + 1] == 'D') ){ ans -= 100; }else{ ans += 100; } break; case 'L' : ans += 50; break; case 'X' : if(i + 1 < n && (str[i + 1] == 'C' || str[i + 1] =='L')){ ans -= 10; }else{ ans += 10; } break; case 'V' : ans += 5; break; case 'I' : if( i + 1 < n && (str[i + 1] == 'V' || str[i + 1] == 'X')){ ans -= 1; }else{ ans += 1; } break; } } return ans; }
参考链接:
https://leetcode.com/problems/roman-to-integer/
https://leetcode-cn.com/problems/roman-to-integer/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具