码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode "Integer to Roman"

时间:2015-06-30 06:34:47      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

char dict[] = {I, V, X, L, C, D, M};
class Solution 
{    
public:
    string pattern(int v, int level)
    {
        int offset = int(log10(level)) * 2;
        char *p = dict + offset;
        
        string ret;
        switch(v)
        {
        case 1:
        case 2:
        case 3:
            for(int i = 0; i < v; i++)    ret += *p;
            break;
        case 4:
            ret += *(p);            
        case 5:
            ret += *(p+1);
            break;
        case 6:
        case 7:
        case 8:
            ret += *(p+1);
            for(int i = 0; i < (v - 5); i ++) ret += *(p);
            break;
        case 9:
            ret += *(p);
        case 10:
            ret += *(p+2);
            break;
        }
        return ret;
    }
    string intToRoman(int num) 
    {
        string ret;
        
        int base = 10000;
        while(num)
        {    
            base /= 10;
            ret += pattern(num/base, base);            
            if (base > 1)    num %= base;
            if (base == 1) break;            
        }

        return ret;
    }
};

LeetCode "Integer to Roman"

标签:

原文地址:http://www.cnblogs.com/tonix/p/4609309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!