Skip to content

Commit 1bd176e

Browse files
committed
solve problem Integer To Roman
1 parent e5081f7 commit 1bd176e

File tree

5 files changed

+57
-0
lines changed

5 files changed

+57
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ All solutions will be accepted!
2626
|371|[Sum Of Two Integers](https://leetcode-cn.com/problems/sum-of-two-integers/description/)|[java/py/js](./algorithms/SumOfTwoIntegers)|Easy|
2727
|171|[Excel Sheet Column Number](https://leetcode-cn.com/problems/excel-sheet-column-number/description/)|[java/py/js](./algorithms/ExcelSheetColumnNumber)|Easy|
2828
|168|[Excel Sheet Column Title](https://leetcode-cn.com/problems/excel-sheet-column-title/description/)|[java/py/js](./algorithms/ExcelSheetColumnTitle)|Easy|
29+
|12|[Integer To Roman](https://leetcode-cn.com/problems/integer-to-roman/description/)|[java/py/js](./algorithms/IntegerToRoman)|Easy|
2930
|13|[Roman To Integer](https://leetcode-cn.com/problems/roman-to-integer/description/)|[java/py/js](./algorithms/RomanToInteger)|Easy|
3031
|155|[Min Stack](https://leetcode-cn.com/problems/min-stack/description/)|[java/py/js](./algorithms/MinStack)|Easy|
3132
|232|[Implement Queue Using Stacks](https://leetcode-cn.com/problems/implement-queue-using-stacks/description/)|[java/py/js](./algorithms/ImplementQueueUsingStacks)|Easy|

algorithms/IntegerToRoman/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Integer To Roman
2+
This problem is easy to solve
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public String intToRoman(int num) {
3+
int[] values = new int[]{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
4+
String[] keys = new String[]{"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
5+
StringBuilder res = new StringBuilder();
6+
7+
for (int i = 0; i < values.length; i++) {
8+
int value = values[i];
9+
int temp = num / value;
10+
num %= value;
11+
while (temp-- > 0) {
12+
res.append(keys[i]);
13+
}
14+
}
15+
16+
return res.toString();
17+
}
18+
}

algorithms/IntegerToRoman/solution.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/**
2+
* @param {number} num
3+
* @return {string}
4+
*/
5+
var intToRoman = function(num) {
6+
let values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
7+
keys = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'],
8+
res = ''
9+
10+
values.forEach((value, i) => {
11+
let temp = parseInt(num / value)
12+
num %= value
13+
while (temp-- > 0) {
14+
res += keys[i]
15+
}
16+
})
17+
18+
return res
19+
};

algorithms/IntegerToRoman/solution.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution(object):
2+
def intToRoman(self, num):
3+
"""
4+
:type num: int
5+
:rtype: str
6+
"""
7+
res = ''
8+
values = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
9+
keys = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
10+
11+
for i in range(len(values)):
12+
value = values[i]
13+
temp = num / value
14+
num %= value
15+
res += temp * keys[i]
16+
17+
return res

0 commit comments

Comments
 (0)