解體思路:
1.寫一個對象trans用于保存羅馬和數字之間的映射關系
2.重點在于當數值小的出現在數值大的左邊時,會減去該數,出現在右邊時會加上該數,因此需要與后面的進行比較
3.在得到s時,首先給它轉換成字符串,并在末位加一個0
/*** @param {string} s* @return {number}*/
var romanToInt = function(s) {let trans = {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000,0: 0}s = s + '0'let input = 0;for(let i=0; i < s.length-1; i++){if(trans[s[i]] < trans[s[i+1]]){ // 比較與后面一位的值input += 0 - trans[s[i]] // 比后面小,傳入負數. 0 - str 是為了將其轉換成數字類型計算} else{input += trans[s[i]] -0 // str -0 是為了將字符串轉換成數字類型}}console.log(input);return input};