Question :
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
Anwser 1 :
class Solution {
public:
int toNum(char c)
{
switch(c)
{
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
case 'L':
return 50;
case 'C':
return 100;
case 'D':
return 500;
case 'M':
return 1000;
default:
return 0;
}
}
int romanToInt(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int ret = 0;
for(int i = 0; i < s.size(); i++)
{
if(i + 1 < s.size())
{
if(toNum(s[i]) < toNum(s[i+1])) // high num < low num, then minus
{
ret -= toNum(s[i]);
}
else
{
ret += toNum(s[i]);
}
}
else
{
ret += toNum(s[i]);
}
}
return ret;
}
};
Anwser 2 :
class Solution {
public:
int toNum(char c)
{
switch(c)
{
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
case 'L':
return 50;
case 'C':
return 100;
case 'D':
return 500;
case 'M':
return 1000;
default:
return 0;
}
}
int romanToInt(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int ret = 0;
int len = s.size();
int pre = 1001;
int cur;
for (int i = 0; i < len; ++i)
{
cur = toNum(s[i]);
ret += cur;
if (cur > pre)
{
ret -= 2*pre; // pre already add one time, now minus tow times
}
pre = cur;
}
return ret;
}
};
分享到:
相关推荐
LeetCode Roman to Integer解决方案
leetcode上Roman to Integer的完整C++代码,已被accepted
13. 罗马数字转整数 Roman to Integer用哈希存储映射字符--->对映的值对字符串的字符挨个判断,考虑下一个字符如果下一个字符大于当前字符,su
c c语言_leetcode 0013_roman_to_integer.zip
java入门 java_leetcode题解之013_Roman_to_Integer
c语言入门 C语言_leetcode题解之13-roman-to-integer.c
js js_leetcode题解之13-roman-to-integer.js
java入门 java_leetcode题解之012_Integer_to_Roman
js js_leetcode题解之12-integer-to-roman.js
c语言入门 C语言_leetcode题解之12-integer-to-roman.c
java lru leetcode Fighting for a job! 记录找工作期间搬运的题,全部使用Java实现,本人C++鶸 1 ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...Integer LeetCode 6 Zi
标题 "leetcode-integer_to_roman" 指的是一个关于 LeetCode 上的编程挑战,该挑战要求将整数转换为罗马数字。这是一个典型的字符串处理和算法设计问题,常见于计算机科学和技术面试中,用于测试候选人的逻辑思维和...
13. Roman to Integer 15. 3Sum 16. 3Sum Closest 17. Letter Combinations of a Phone Number 18. 4Sum 19. Remove Nth Node From End of List 20. Valid Parentheses 21. Merge Two Sorted Lists 22. Generate ...
* 整数到罗马(Integer to Roman):将整数转换为罗马数字。 * 罗马到整数(Roman to Integer):将罗马数字转换为整数。 4. 链表操作: * 删除链表中的重复项(Remove Duplicates from Sorted Array):删除链表...
6. **Integer to Roman.cpp** - 第40题,与“Roman to Integer”相反,这个任务是将整数转换为罗马数字。解冑需理解罗马数字的构造规则。 7. **Implement strStr().cpp** - 第28题,实现字符串查找功能,即在一个...
Leetcode回文串拼接 leetcode_node 题解 该项目主要用于基于Leetcode的刷题记录,与日常学习,对Leetcode上的题目按照解题方法进行分明别类的整理。 题目列表 1.Two Sum 2.Add Two Numbers 3.Longest Substring ...
462 | [Minimum Moves to Equal Array Elements II](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/) | [C++](./C++/minimum-moves-to-equal-array-elements-ii.cpp) [Python](./Python/...
37. Roman to Integer:罗马数字转换成整数。 38. Clone Graph:深度复制一个图。 【栈】 39. Min Stack:设计一个栈,支持 push、pop、top 操作,并且在常数时间内得到栈的最小值。 40. Evaluate Reverse Polish ...
leetcode 2 sum c leetcode 力扣(Leetcode)编程题,JavaScript版本。 编号 中文题目 英文题目 题目描述 JavaScript 难度 1 Two Sum 简单 2 Add Two Numbers 中等 3 Longest Substring Without Repeating... 中等 5...
LeetCode刷题总结 1.Two Sum 2.Add Two Numbers 3.Longest Substring Without Repeating Characters 4.Median of Two Sorted Arrays 5.Longest Palindromic Substring (Manacher算法待完成) 6.ZigZag Conversion 7....