leetcode 012 —— Integer to Roman

原创 2015年07月08日 19:53:02

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999

知识补充:

I、V、	  X、L、	C、D	和M,分别表示	1、5、	10、50、	100、500	和1000;

思路:依次求千,百,十,个,转换成字符串        下面的方法是枚举,空间复杂度有待完善,更简洁的代码以后附上

class Solution {
public:
string intToRoman(int num) {
	int qian =num/1000;
	int bai = (num - qian * 1000) / 100;
	int shi = (num - qian * 1000 - 100 * bai) / 10;
	int ge = num % 10;

	string s1 (qian, 'M');
	string s2 = fun(bai, 3);
	string s3 = fun(shi, 2);
	string s4 = fun(ge, 1);
	
	string s = s1 + s2 + s3 + s4;
	return s;

}

string fun(int n,int myCase){
	if (n == 0)
		return "";
	vector<string> vec;
	switch(myCase){
	case 1: 	vec = { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
				break;
	case 2: 	vec = { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
				break;
	case 3: 	vec = { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
				break;
	}

	return vec[n - 1];
}

};



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LeetCode 012 Integer to Roman

【题目】 Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range ...

【LeetCode-面试算法经典-Java实现】【012-Integer to Roman(数字转罗马字符)】

【012-Integer to Roman(数字转罗马字符)】输入一个数字,将它转成一个罗马数字,输入的数字在[1, 3999]之间。   罗马数字的表示:   个位数举例: (I, 1) (II,...

LeetCode 012 Integer to Roman

记录自己的LeetCode刷题过程,总结刷题过程中的心得体会。 对于stack,没有push_back(),只有push();这个容易思维定势,需要注意。 其实,现在感觉stack还是很好用的。 W...

leetcode之路012 Integer to Roman

题目大意:将整数转化为罗马形式表示,输入为1-3999。对照表: 基本字符 I V X L C D M 相应的阿拉伯数字表示为 1 5 10 ...

【leetcode】String——Roman to Integer(13)

题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the rang...

[leetcode 13] Roman to Integer

题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the ra...

[LeetCode]Roman to Integer

题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the rang...

Leetcode:integer_to_roman

将给定的数字(阿拉伯数字)转化成罗马数字。数字不会大于3999

[leetcode]详解Integer to Roman

Integer to RomanRoman与Integer的转换规则?From Wikipedia 现在用的罗马数字由7个字符表示,如下表: 字符 值 I 1 V 5 X...

【LeetCode with Python】 Integer to Roman

Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)