http://oj.leetcode.com/problems/roman-to-integer/
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
Input is guaranteed to be within the range from 1 to 3999.
题中大意为返回罗马数字(字符串)对应的整数。
我的想法很简单,逐位计算。
首先将I, V,X,L,C,D,M存放起来,并与下标做hash,假如第i位字符的下标小于后面的字符(i+1位)的下标,即小数写在了大数前面,表示减去这个小数。相反,如果第i位字符的下标>=i+1位的下标,即小数写在了大数的后面,表示加上这个小数。
代码就很简单了
public int romanToInt(String s) { Map<Character, Integer> map = new HashMap<Character, Integer>(); fillMap(map); int[] num = { 1, 5, 10, 50, 100, 500, 1000 }; int result = 0; for (int i = 0; i < s.length(); ++i) { if (i < s.length() - 1 && map.get(s.charAt(i)) < map.get(s.charAt(i + 1))) { result -= num[map.get(s.charAt(i))]; } else { result += num[map.get(s.charAt(i))]; } } return result; } private void fillMap(Map<Character, Integer> map) { map.put('I', 0); map.put('V', 1); map.put('X', 2); map.put('L', 3); map.put('C', 4); map.put('D', 5); map.put('M', 6); }
相关推荐
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....