Leetcode Week3

    xiaoxiao2021-03-25  58

    /* 5.将罗马数字转换成整数。Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999. 思路:罗马数字的基本思想是右加左减,并且左减最大只能一位。所以我们可以将所以数相加,然后再遍历一次, 当前一个数比后一个数小时,从结果中减去该数值的两倍。(第一遍循环,该数值被增加了一次) */ /* class Solution { public:     int romanToInt(string s) {         int res = 0;                  for(int i=0;i<s.size();++i){             res += getNum(s[i]);         }                  int pre = 0;         int cur = getNum(s[0]);                  for(int i=1;i<s.size();++i){             pre = cur;             cur = getNum(s[i]);             if(pre*5 == cur || pre*10 ==cur){                 res -= pre*2;                }         }         return res;              }          int getNum(char c)     {         switch (c)         {             case 'I':                 return 1;             case 'V':                 return 5;             case 'X':                   return 10;               case 'L':                   return 50;               case 'C':                   return 100;               case 'D':                   return 500;               case 'M':                   return 1000;               default:                 return 0;         }     } };
    转载请注明原文地址: https://ju.6miu.com/read-33658.html

    最新回复(0)