Roman to Integer Easy
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
public int romanToInt(String s) { int sum = 0; if (s.contains("IV")) { sum -= 2; } if (s.contains("IX")) { sum -= 2; } if (s.contains("XL")) { sum -= 20; } if (s.contains("XC")) { sum -= 20; } if (s.contains("CD")) { sum -= 200; } if (s.contains("CM")) { sum -= 200; } char c[] = s.toCharArray(); int count = 0; for (; count <= s.length() - 1; count++) { if (c[count] == 'M') sum += 1000; if (c[count] == 'D') sum += 500; if (c[count] == 'C') sum += 100; if (c[count] == 'L') sum += 50; if (c[count] == 'X') sum += 10; if (c[count] == 'V') sum += 5; if (c[count] == 'I') sum += 1; } return sum; }
思路:把所有出现的字符按次数相加即可。特殊情况:4、40之类的可使结果多出2、20,注意减去。因为限定了数值为1到3999,所以每种特殊情况只会出现一次。
这篇博客介绍了如何解决LeetCode上的第013题,即将给定的罗马数字转换成整数。题目保证输入在1到3999的范围内。解题思路主要涉及将罗马数字的每个字符根据其代表的数值累加,同时处理如'IV'(4)、'XL'(40)等特殊情况,确保结果正确。
1634

被折叠的 条评论
为什么被折叠?



