zoukankan      html  css  js  c++  java
  • LeetCode Integer to Roman

    class Solution {
    private:
        const static char* pattern[];
        const static char* roman_digit[];
    public:
        string intToRoman(int num) {
            if (num < 1 || num > 3999) return "";
            string res("");
            int i=0;
            while (num) {
                res = getSingleRomanDigit(num % 10, i++) + res;
                num /= 10;
            }
            return res;
        }
    
        string getSingleRomanDigit(int digit, int mag) {
            if (digit == 0) return "";
            if (digit > 9 || digit < 1 || mag > 3 || mag < 0) {
                return "FORMAT ERROR";
            }
            string res;
            int pi = 0;
            for (int i=0; (pi = pattern[digit][i]) != ''; i++) {
                pi = pi - '0';
                res.push_back(roman_digit[mag][pi]);
            }
            return res;
        }
    };
    const char* Solution::pattern[] =  {"x", "0", "00", "000", "01", "1", "10", "100", "1000", "02"};
    const char* Solution::roman_digit[] = {"IVX", "XLC", "CDM", "M"};

    水一发

  • 相关阅读:
    605
    603
    509
    7-5
    6-5
    5-6
    5-3
    5-4
    5-5
    4-12
  • 原文地址:https://www.cnblogs.com/lailailai/p/3783838.html
Copyright © 2011-2022 走看看