zoukankan      html  css  js  c++  java
  • Leetcode#13 Roman to Integer

    原题地址

    罗马数字的问题可以参考这篇博文,讲的很清楚

    代码:

     1 int transfer(char c) {
     2   switch (c) {
     3   case 'I': return 1;
     4   case 'V': return 5;
     5   case 'X': return 10;
     6   case 'L': return 50;
     7   case 'C': return 100;
     8   case 'D': return 500;
     9   case 'M': return 1000;
    10   default: return -1;
    11   }
    12 }
    13     
    14 int romanToInt(string s) {
    15   int res = 0;
    16   int pre = 0;
    17   for (int i = 0; i < s.length(); i++) {
    18     int curr = transfer(s[i]);
    19     if (curr <= pre)
    20       res += curr;
    21     else {
    22       res -= pre * 2;
    23       res += curr;
    24     }
    25     pre = curr;
    26   }
    27         
    28   return res;
    29 }

    还有一种非常残暴的方法,在看Ruby教程的时候偶然发现的。即,遇到不规则的字母,比如IV,替换成最基本的字母,比如IIII。这样全部替换完成之后,从头到尾扫一遍就行了。

  • 相关阅读:
    XML组成部分
    XML语法
    XML概念
    HTTP协议:响应消息的数据格式---Response
    KM HDU 3718
    KM最大匹配 HDU 2255
    匈牙利算法
    母函数
    最长公共子序列 LCS
    hdu 4632 区间DP
  • 原文地址:https://www.cnblogs.com/boring09/p/4268546.html
Copyright © 2011-2022 走看看