面试经典150题——Day18

文章目录

一、题目

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, 2 is written as II in Roman numeral, just two one's added together. 12 is written as XII, which is simply X + II. The number 27 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 before V (5) and X (10) to make 4 and 9.

X can be placed before L (50) and C (100) to make 40 and 90.

C can be placed before D (500) and M (1000) to make 400 and 900.

Given an integer, convert it to a roman numeral.

Example 1:

Input: num = 3

Output: "III"

Explanation: 3 is represented as 3 ones.

Example 2:

Input: num = 58

Output: "LVIII"

Explanation: L = 50, V = 5, III = 3.

Example 3:

Input: num = 1994

Output: "MCMXCIV"

Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

Constraints:

1 <= num <= 3999

题目来源: leetcode

二、题解

由于num的范围在1~3999之间,因此可以直接使用硬编码的方式解决

cpp 复制代码
class Solution {
public:
    string intToRoman(int num) {
        string thousands[] = {"","M","MM","MMM"};
        string hundreds[] = {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
        string tens[] = {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
        string ones[] = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
        string res = thousands[num / 1000] + hundreds[(num % 1000) / 100] + tens[(num % 100) / 10] + ones[num % 10];
        return res;
    }
};
相关推荐
‘’林花谢了春红‘’8 分钟前
Leetcode::3019. 按键变更的次数
算法·leetcode
带多刺的玫瑰13 分钟前
Leecode刷题C语言之按键变更的次数
数据结构·算法
苹果18 分钟前
C++二十三种设计模式之原型模式
c++·设计模式·原型模式
kk无敌怕1 小时前
分布式主键ID生成方式-snowflake雪花算法
分布式·算法
EnticE1521 小时前
[项目实战2]贪吃蛇游戏
开发语言·数据结构·c++·游戏
爱学习的橙子羊1 小时前
141.环形链表 & 142.环形链表II
数据结构·链表·哈希算法
Fishel-2 小时前
线性回归api再介绍
算法·回归·线性回归
勤劳的进取家2 小时前
协方差矩阵
线性代数·算法·机器学习·矩阵
tt5555555555552 小时前
每日一题:链表中环的入口结点
数据结构·链表
野生派蒙2 小时前
排序算法:冒泡排序
java·数据结构·算法·排序算法