12. Integer to Roman
Roman numerals are represented by seven different symbols: I
, V
, X
, L
, C
, D
and M
.
Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000
For example, two is written as II
in Roman numeral, just two one's added together. Twelve is written as, XII
, which is simply X
+ II
. The number twenty seven is written as XXVII
, which is XX
+ V
+ II
.
Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII
. Instead, the number four is written as IV
. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX
. There are six instances where subtraction is used:
I
can be placed beforeV
(5) andX
(10) to make 4 and 9.X
can be placed beforeL
(50) andC
(100) to make 40 and 90.C
can be placed beforeD
(500) andM
(1000) to make 400 and 900.
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.
Example 1:
Input: 3 Output: "III"
Example 2:
Input: 4 Output: "IV"
Example 3:
Input: 9 Output: "IX"
Example 4:
Input: 58 Output: "LVIII" Explanation: C = 100, L = 50, XXX = 30 and III = 3.
Example 5:
Input: 1994 Output: "MCMXCIV" Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
my code:
class Solution { public: string intToRoman(int num) { string str[4][9] = {{"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}, {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}, {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}, {"M", "MM", "MMM"} }; string ans = ""; int count = 0, flag; while (num) { flag = num % 10; if (flag) ans = str[count][flag-1] + ans; num /= 10; count++; } return ans; } };
Runtime: 56 ms, faster than 46.31% of C++ online submissions for Integer to Roman.
相关文章
- Java: Best Way to read a file
- What happens to the forks when deleting the original repository?
- Upgrading to Kentico 12
- How to use AutoMapper
- 【CF1139D】Steps to One(动态规划)
- KVM error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock‘
- yum提示Another app is currently holding the yum lock; waiting for it to exit...
- TypeError: only integer scalar arrays can be converted to a scalar index
- English Voice of <<Take Me To Your Heart>>
- xtu summer individual 5 A - To Add or Not to Add
- 我的2016_To Code or Not to Code: No Question
- [Leetcode] Convert Sorted List to Binary Search Tree
- mysql报ERROR:Deadlock found when trying to get lock; try restarting transaction(nodejs)
- mysql更新字段值提示You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode
- 九度OJ #1437 To Fill or Not to Fil
- [LeetCode] Number of Lines To Write String 写字符串需要的行数
- Caused by SSLError("Can’t connect to HTTPS URL because the SSL module is not available)&no module ..
- VS2015 define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings