罗马转整数要考虑先后顺序
当排在前面的罗马数字大于后面的罗马数字,就正常化成阿拉伯数字相加
如果小,那就是将小的数转成负数,再加就ok。
但也是需要模拟的,就是哪一字母代表哪个数值。
class Solution:def romanToInt(self, s: str) -> int:num_list = [0 for i in range(len(s))]for i in range(len(s)):if s[i] == "M":num_list[i] = 1000if s[i] == "D":num_list[i] = 500if s[i] == "C":num_list[i] = 100if s[i] == "L":num_list[i] = 50if s[i] == "X":num_list[i] = 10if s[i] == "V":num_list[i] = 5if s[i] == "I":num_list[i] = 1i = 0sum = 0while i < len(num_list) - 1:if num_list[i] < num_list[i+1]:sum -= num_list[i]else:sum += num_list[i]i += 1sum += num_list[-1]return sum