Leetcode 11-20
阿新 • • 發佈:2021-10-11
12 整數轉羅馬數字
模擬 提高一次AC成功率 細心
string intToRoman(int num) { string res; while(num>=1000)num-=1000,res+='M'; if(num>=900)num-=900,res+="CM"; if(num>=500)num-=500,res+="D"; if(num>=400)num-=400,res+="CD"; while(num>=100)num-=100,res+="C"; if(num>=90)num-=90,res+="XC"; if(num>=50)num-=50,res+="L"; if(num>=40)num-=40,res+="XL"; while(num>=10)num-=10,res+="X"; if(num>=9)num-=9,res+="IX"; if(num>=5)num-=5,res+="V"; if(num>=4)num-=4,res+="IV"; while(num>=1)num--,res+="I"; return res; }
13 上一道題意的reverse
int romanToInt(string s) { int n=s.size(); int res=0; for(int i=n-1;i>=0;i--){ if(s[i]=='I')res++; if(s[i]=='V'){ res+=5; if(i&&s[i-1]=='I'){ i--; res--; } } if(s[i]=='X'){ res+=10; if(i&&s[i-1]=='I'){ i--; res--; } } if(s[i]=='L'){ res+=50; if(i&&s[i-1]=='X'){ i--; res-=10; } } if(s[i]=='C'){ res+=100; if(i&&s[i-1]=='X'){ i--; res-=10; } } if(s[i]=='D'){ res+=500; if(i&&s[i-1]=='C'){ i--; res-=100; } } if(s[i]=='M'){ res+=1000; if(i&&s[i-1]=='C'){ i--; res-=100; } } } return res; }