leetcode Integer to Roman

来源:互联网 发布:淘宝秒杀在哪? 编辑:程序博客网 时间:2024/06/02 07:14

代码

class Solution {public:    string intToRoman(int num) {        if(num<1||num>3999)            return "";                    int digit = 1000;        vector<int> digits;                while(digit>0)        {            digits.push_back(num/digit);            num %= digit;            digit /= 10;        }                string res = "";        res += intToRomanHelper(digits[0], 'M', ' ', ' ');        res += intToRomanHelper(digits[1], 'C', 'D', 'M');        res += intToRomanHelper(digits[2], 'X', 'L', 'C');        res += intToRomanHelper(digits[3], 'I', 'V', 'X');        return res;    }        string intToRomanHelper(int digit, char one, char five, char ten)    {        string temp = "";                switch(digit)        {            case 9:                temp += one;                temp += ten;                break;            case 8:            case 7:            case 6:            case 5:            temp += five;            for(int i = 5; i < digit; ++i)                temp += one;            break;            case 4:            temp += one;            temp += five;            break;            case 3:            case 2:            case 1:            for(int i = 0; i < digit; ++i)                temp += one;            break;            default:            break;        }                return temp;            }};

0 0
原创粉丝点击