
哈哈,有了上個題的經驗,我們是不是應該趁熱打鐵呢?這次是講一個羅曼的(羅馬)數字轉化為一個整形數字,所以我們逆向去推理上個題,其實這個題很有規律的,將string數組遍歷一遍就可以求解了,廢話不多說,見代碼:
class Solution {
public:
int romanToInt(string s) {
//和上道題剛好相反
int lastnum = 0;
int len = s.size();
if(len < 1)
{
return lastnum;
}
int i = 0;
while( i < len)
{
switch(s[i])
{
case 'M': //1000
lastnum+=1000;
++i;
break;
case 'D': //500
lastnum+=500;
i++;
break;
case 'C': //100
{
if(i+1
需要注意的是那些特殊的數字的表示方法,例如'4'->(IV), '9'->(IX), '40'->(XL),'90'->(XC),'400'->(CD),'900'->(CM).
最後還是附上這個吧!^_^
