跳至主要内容

12. Integer to Roman

Hint

class Solution {
public:
string intToRoman(int num)
{
// Vector of pairs, each pair contains an integer and its corresponding Roman numeral representation

// Initialize the resulting Roman numeral string
// Iterate over each symbol in the vector
// While the current number is greater than or equal to the integer value of the symbol
// Subtract the integer value from the number
// Append the corresponding Roman numeral to the result
// Return the resulting Roman numeral string
}
};
class Solution {
public:
string intToRoman(int num)
{
vector<pair<int, string>> symbols = {
{1000, "M"},
{900, "CM"},
{500, "D"},
{400, "CD"},
{100, "C"},
{90, "XC"},
{50, "L"},
{40, "XL"},
{10, "X"},
{9, "IX"},
{5, "V"},
{4, "IV"},
{1, "I"}
};

string roman;
for (auto symbol : symbols)
{
while (num >= symbol.first)
{
num -= symbol.first;
roman += symbol.second;
}
}
return roman;

}
};
  • T: O(N)O(N)
  • S: O(1)O(1)