• Roman to Integer


     1 class Solution {
     2 public:
     3     int romanToInt(string s) {
     4         int i,len=s.size();
     5         int dig[20];
     6         for(i=0;i<len;i++)
     7         {
     8             if(s[i]=='I')
     9                 dig[i]=1;
    10             if(s[i]=='V')
    11                 dig[i]=5;
    12             if(s[i]=='X')
    13                 dig[i]=10;
    14             if(s[i]=='L')
    15                 dig[i]=50;
    16             if(s[i]=='C')
    17                 dig[i]=100;
    18             if(s[i]=='D')
    19                 dig[i]=500;
    20             if(s[i]=='M')
    21                 dig[i]=1000;
    22         }
    23         int ans=0,cur=dig[0];
    24         for(i=1;i<len;i++)
    25         {
    26             if(dig[i]<=dig[i-1])
    27             {
    28                 ans+=cur;
    29             }
    30             else
    31             {
    32                 ans-=cur;
    33             }
    34             cur=dig[i];
    35         }
    36         ans+=cur;
    37         return ans;
    38     }
    39 };
    View Code

    罗马数字中I =1, V=5,X=10, L=50, C=100,D=500,M=1000;

    小数字放在大数字右边是相加,如VII是7,小数字放在大数字左边是相减,如IX=9。

    根据数字的组成原则,先表示大数字,在表示小数字,如3999,先表示3000 MMM,再表示900 CM,再表示90 XC,再表示9 IX

    所以从左到右遍历,若右边的数字小于等于当前数,则加上当前数,若右边的数字大于等于当前数,则减去当前数

  • 相关阅读:
    第七章
    第五章
    第六章
    Git使用入门
    源代码的下载和编译
    向中国最牛的前端群-鬼群致敬
    Normalize.css做了哪些事情--看代码
    谷歌浏览器:书签被误删了怎么办
    2013/8月读书计划
    Limu:JavaScript的那些书
  • 原文地址:https://www.cnblogs.com/varcom/p/4556385.html
Copyright © 2020-2023  润新知