首页 > 其他 > 详细

LeetCode "Integer to Roman"

时间:2015-06-30 06:34:09      阅读:261      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!