Question :
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
Anwser 1 :
class Solution {
public:
string intToRoman(int num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
string res;
string symbol[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
int value[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
int i = 0;
while(num != 0){
if(num >= value[i]){ // minus largest number
num -= value[i];
res += symbol[i];
} else {
i++;
}
}
return res;
}
};
Anwser 2 :
class Solution {
public:
string intToRoman(int num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
char symbol[7] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};
string res = "";
int scale = 1000;
for (int i = 6; i >= 0; i -= 2)
{
int digit = num / scale;
num2roman(digit, res, symbol + i);
num %= scale;
scale /= 10;
}
return res;
}
void num2roman(int num, string& res, char symbols[])
{
if (num == 0)
return;
if (num <= 3)
res.append(num, symbols[0]);
else if (num == 4)
{
res.append(1, symbols[0]);
res.append(1, symbols[1]);
}
else if (num <= 8)
{
res.append(1, symbols[1]);
res.append(num - 5, symbols[0]);
}
else
{
res.append(1, symbols[0]);
res.append(1, symbols[2]);
}
}
};
分享到:
相关推荐
LeetCode Roman to Integer解决方案
c c语言_leetcode 0013_roman_to_integer.zip
leetcode上Roman to Integer的完整C++代码,已被accepted
java入门 java_leetcode题解之012_Integer_to_Roman
js js_leetcode题解之12-integer-to-roman.js
c语言入门 C语言_leetcode题解之12-integer-to-roman.c
java入门 java_leetcode题解之013_Roman_to_Integer
c语言入门 C语言_leetcode题解之13-roman-to-integer.c
js js_leetcode题解之13-roman-to-integer.js
标题 "leetcode-integer_to_roman" 指的是一个关于 LeetCode 上的编程挑战,该挑战要求将整数转换为罗马数字。这是一个典型的字符串处理和算法设计问题,常见于计算机科学和技术面试中,用于测试候选人的逻辑思维和...
* 整数到罗马(Integer to Roman):将整数转换为罗马数字。 * 罗马到整数(Roman to Integer):将罗马数字转换为整数。 4. 链表操作: * 删除链表中的重复项(Remove Duplicates from Sorted Array):删除链表...
13. 罗马数字转整数 Roman to Integer用哈希存储映射字符--->对映的值对字符串的字符挨个判断,考虑下一个字符如果下一个字符大于当前字符,su
6. **Integer to Roman.cpp** - 第40题,与“Roman to Integer”相反,这个任务是将整数转换为罗马数字。解冑需理解罗马数字的构造规则。 7. **Implement strStr().cpp** - 第28题,实现字符串查找功能,即在一个...
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/...
java lru leetcode Fighting for a job! 记录找工作期间搬运的题,全部使用Java实现,本人C++鶸 1 ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...LeetCode ...Integer LeetCode 6 Zi
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回文串拼接 leetcode_node 题解 该项目主要用于基于Leetcode的刷题记录,与日常学习,对Leetcode上的题目按照解题方法进行分明别类的整理。 题目列表 1.Two Sum 2.Add Two Numbers 3.Longest Substring ...
lru缓存leetcode leetcode 1. Two Sum 2. Add Two Numbers 3. Longest Substring Without Repeating Characters 4. Median of Two Sorted Arrays 5. Longest Palindromic Substring 7. Reverse Integer 9. ...
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....