思路一:從字串0位置開始遍歷,依次判斷每一種可能。
public int romantoint(string s) else if (str[i] == 'd') else if (str[i] == 'c' && (i + 1 < str.length && str[i + 1] == 'd')) else if (str[i] == 'c' && (i + 1 < str.length && str[i + 1] == 'm')) else if (str[i] == 'x' && (i + 1 < str.length && str[i + 1] == 'l')) else if (str[i] == 'x' && (i + 1 < str.length && str[i + 1] == 'c')) else if (str[i] == 'i' && (i + 1 < str.length && str[i + 1] == 'v')) else if (str[i] == 'i' && (i + 1 < str.length && str[i + 1] == 'x')) else if (str[i] == 'c') else if (str[i] == 'l') else if (str[i] == 'x') else if (str[i] == 'v') else if (str[i] == 'i')
}return result;
}
思路二:從字串0位置開始遍歷,若遍歷到的字元所對應的數字比前乙個字元對應的數字小,則結果中減去該字元所對應的數字,否則,相加。
public int romantoint_2(string s) else
prenum = num;
}result += prenum;
return result;
}private int getnum(char c)
}
leetcode 13 羅馬數字轉整數
羅馬數字包含以下七種字元 i,v,x,l,c,d和m。字元 數值i 1 v 5 x 10 l 50 c 100 d 500 m 1000例如,羅馬數字 2 寫做ii,即為兩個並列的 1。12 寫做xii,即為x ii。27 寫做xxvii,即為xx v ii。通常情況下,羅馬數字中小的數字在大的數字...
leetcode 13 羅馬數字轉整數
羅馬數字包含以下七種字元 i,v,x,l,c,d和m。字元數值i 1 v 5 x 10 l 50 c 100 d 500 m 1000例如,羅馬數字 2 寫做ii,即為兩個並列的 1。12 寫做xii,即為x ii。27 寫做xxvii,即為xx v ii。通常情況下,羅馬數字中小的數字在大的數字的...
Leetcode 13 羅馬數字轉整數
羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中小...