class Solution { public: int romanToIntChar(char c) { int data=0; switch(c) { case 'I': { data=1; return data; } case 'V': { data=5; return data; } case 'X': { data=10; return data; } case 'L': { data=50; return data; } case 'C': { data=100; return data; } case 'D': { data=500; return data; } case 'M': { data=1000; return data; } return data; } } int romanToInt(string s) { int length=s.size(); int Res=0,buf=0,pre=0; for(int i=0;i<length;i++) { buf=romanToIntChar(s[i]); if(i==0) { Res+=buf; continue; } pre=romanToIntChar(s[i-1]); if(pre<buf) { Res=Res-2*pre+buf; } else { Res+=buf; } } return Res; } };
class Solution { public: int romanToInt(string s) { int Res=0; map<char,int> m={{'I',1};{'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}}; for(int i=0; i<s.size();i++) { if(i==0) { Res+=m[s[i]];
continue;//注意continue } if(m[s[i]]<=m[s[i-1]]) { Res+=m[s[i]]; } else { Res=Res-2*m[s[i-1]]+m[s[i]]; } } return Res; } };//注意类定义格式
LEECODE-Roman to Integer
最新推荐文章于 2022-03-02 22:01:20 发布