程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 筆試題26. LeetCode OJ (13)

筆試題26. LeetCode OJ (13)

編輯:C++入門知識

筆試題26. LeetCode OJ (13)


\

哈哈,有了上個題的經驗,我們是不是應該趁熱打鐵呢?這次是講一個羅曼的(羅馬)數字轉化為一個整形數字,所以我們逆向去推理上個題,其實這個題很有規律的,將string數組遍歷一遍就可以求解了,廢話不多說,見代碼:

 

class Solution {
public:
    int romanToInt(string s) {
        //和上道題剛好相反
        int lastnum = 0;
        int len = s.size();
        if(len < 1)
        {
            return lastnum;
        }
        int i = 0;
        while( i < len)
        {
            switch(s[i])
            {
                case 'M': //1000
                        lastnum+=1000;
                        ++i;
                    break;
                case 'D': //500
                        lastnum+=500;
                        i++;
                    break;
                case 'C': //100
                {
                    if(i+1 

需要注意的是那些特殊的數字的表示方法,例如'4'->(IV), '9'->(IX), '40'->(XL),'90'->(XC),'400'->(CD),'900'->(CM).

 

最後還是附上這個吧!^_^

\

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved