leetcode 013 —— Roman to Integer

原创 2015年07月08日 20:06:16

Given a roman numeral, convert it to an integer.

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

class Solution {
public:
    int romanToInt(string s){
    	vector<string> vec_ge = { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
    	vector<string> vec_shi = { "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
    	vector<string> vec_bai = { "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
    	int i = 0;
    	while (s[i] == 'M')
    		i++;
    	int qian = i;
    	s.erase(0, i);
    
    	i = 0;
    	while (s[i] == 'C' || s[i] == 'D' || s[i] == 'M')
    		i++;
    	string s1(s, 0, i);
    	int bai = search(s1, vec_bai);
    	s.erase(0, i);
    
    	i = 0;
    	while (s[i] == 'X' || s[i] == 'L' || s[i] == 'C')
    		i++;
    	string s2(s, 0, i);
    	int shi = search(s2, vec_shi);
    	s.erase(0, i);
    
    	i = 0;
    	while (s[i] == 'I' || s[i] == 'V' || s[i] == 'X')
    		i++;
    	string s3(s, 0, i);
    	int ge = search(s3, vec_ge);
    
    	return 1000 * qian + 100 * bai + 10 * shi + ge;
    
    
    }
    
    int search(string mstr, vector<string> mvec){
    	for (int i = 0; i < 9; i++){
    		if (mvec[i] == mstr)
    			return i + 1;
    	}
    	return 0;
    }
};

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

相关文章推荐

leetcode之路013 Roman to Integer

#include "stdafx.h" #include #include #include #include #include using namespace std; class Solutio...

[LeetCode 解题报告]013. Roman to Integer

Description: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the r...

LeetCode013:Roman to Integer

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

[LeetCode]013-Roman to Integer

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

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

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

leetcode/roman to integer

如今我们最常见的罗马数字就是钟表的表盘符号:Ⅰ,Ⅱ,Ⅲ,Ⅳ(IIII),Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ…… 对应阿拉伯数字(就是现在国际通用的数字),就是1,2,3,4,5,6,7,8,9,10...

LeetCode 13_Roman to Integer

首先说明一下,这道题和前面12题是双胞胎,以至于刚开始我一度怀疑这是用来凑数的,不过后来分析得知二者用的并不是同一算法。而且在最后整理的过程中还经历了一些有趣的波折,到最后总结时才发现,这些话也是重新...

LeetCode Roman to Integer

题目 Given a roman numeral,convert it to an integer. Input is guaranteed to bewithin the range from ...

13 leetcode - Roman to Integer

Roman to Integer:Given a roman numeral, convert it to an integer.

leetcode 12 -- Integer to Roman

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

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