Leetcode: Integer to Roman and Roman to Integer
阿新 • • 發佈:2018-12-22
沒什麼可說的,純刷題,
Integer to Roman,vector的建立可以單獨寫個API。
Roman to Integer,主要是規律找出來,如果後面的char比見面的大,就是相減得到res。
class Solution { public: string intToRoman(int num) { vector<string> TH = {"", "M", "MM", "MMM"}; vector<string> HU = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; vector<string> TE = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}; vector<string> SI = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}; return (TH[num/1000] + HU[num % 1000 / 100] + TE[num % 100 / 10] + SI[num%10]); } };
class Solution { public: int romanToInt(string s) { unordered_map<char, int>map={ {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000} }; if(s.size() < 1) return 0; int res = map[s[0]]; for(int i = 1; i < s.size(); i++) { if(map[s[i]] > map[s[i-1]]) { res += map[s[i]] - 2*map[s[i-1]]; } else { res += map[s[i]]; } } return res; } };