• 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。这样全部替换完成之后,从头到尾扫一遍就行了。

  • 相关阅读:
    HDU 1495 广度优先搜索
    oj 1792:迷宫 广搜和深搜
    oj 1756:八皇后 搜索
    OJ1700 八皇后问题 基本搜索算法
    PAT A1020
    PAT A1103
    PAT A1046 Shortest Distance
    PAT A1059
    PAT B1013
    二分查找
  • 原文地址:https://www.cnblogs.com/boring09/p/4268546.html
Copyright © 2020-2023  润新知