成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

leetcode從羅馬數(shù)字開始

LiveVideoStack / 1420人閱讀

摘要:將羅馬數(shù)字轉(zhuǎn)化為十進(jìn)制數(shù)字上的一道簡單級別的題目將羅馬數(shù)字轉(zhuǎn)化為對應(yīng)的十進(jìn)制數(shù)字,其中羅馬數(shù)字的范圍在這題的關(guān)鍵在于了解需求,及如何將羅馬數(shù)字轉(zhuǎn)化為對應(yīng)的十進(jìn)制數(shù)字羅馬數(shù)字轉(zhuǎn)化為十進(jìn)制數(shù)字的規(guī)則為用作數(shù)字的羅馬字母共有七個,即相同的數(shù)字連寫

將羅馬數(shù)字轉(zhuǎn)化為十進(jìn)制數(shù)字

Leetcode上的一道簡單級別的題目
將羅馬數(shù)字轉(zhuǎn)化為對應(yīng)的十進(jìn)制數(shù)字,其中羅馬數(shù)字的范圍在1~3999

這題的關(guān)鍵在于了解需求,及如何將羅馬數(shù)字轉(zhuǎn)化為對應(yīng)的十進(jìn)制數(shù)字

羅馬數(shù)字轉(zhuǎn)化為十進(jìn)制數(shù)字的規(guī)則為:

用作數(shù)字的羅馬字母共有七個,即Ⅰ(1),Ⅴ(5),Ⅹ(10),L(50),C(100),D(500),M(1000).

相同的數(shù)字連寫,所表示的數(shù)等于這些數(shù)相加

如果大的數(shù)字在前,小的數(shù)字在后,所表示的數(shù)等于這些數(shù)相加 如:VIII = 8,

如果小的數(shù)字在前,大的數(shù)字在后,所表示的數(shù)等于從大數(shù)減去小數(shù)。如:IX = 9

我的解答中使用了類似于鏈表的方法
創(chuàng)建兩個變量current和next分別表示當(dāng)前節(jié)點和下一個節(jié)點,當(dāng)當(dāng)前節(jié)點和下一個節(jié)點的值不同時,則將當(dāng)前temp中的值根據(jù)比較結(jié)果添加至result,并賦值temp為下一個節(jié)點的值,否則將值累加至temp
為了比較方便,我在輸入的string最后添加了一個‘O’其對應(yīng)的值為0

/**
 * @author rale
 *
 *Given a roman numeral, convert it to an integer.
 *Input is guaranteed to be within the range from 1 to 3999.
 *
 */
public class RomanToInteger {
    public int romanToInt(String s) {
        //將兩個if判斷刪去后測試得到的結(jié)果性能更好 可能和測試用例有關(guān)
        if(s==null || s.equals("")){
            return 0;
        }
        if(s.length()==1){
            return singleRomanToInt(s.charAt(0));
        }
        s += "O";
        int result = 0;
        char[] romanChars = s.toCharArray();
        char current = romanChars[0];
        char next = romanChars[1];
        int temp = singleRomanToInt(current);
        for(int i = 0 ; inextInt){
                result += temp;
                temp = nextInt;
            }
        }
        return result;
    }
    
    //將單個羅馬字母轉(zhuǎn)化為對應(yīng)的數(shù)字
    private int singleRomanToInt(char s){
        int result = 0;
        switch(s){
        case "I" : 
            result = 1;
            break;
        case "V" :
            result = 5;
            break;
        case "X" :
            result = 10;
            break;
        case "L" :
            result = 50;
            break;
        case "C" :
            result = 100;
            break;
        case "D" :
            result = 500;
            break;
        case "M" :
            result = 1000;
            break;
        default :
            result = 0;
            break;
        }
    return result;
    }
    
    
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66840.html

相關(guān)文章

  • leetcode刷題:283.Move Zeroes(Easy)

    摘要:解法目的就是把一個數(shù)組中所有為的數(shù)移動到數(shù)組的尾部,并保證其他元素相對位置不變。要求是在原數(shù)組上修改,不要額外引入其他的數(shù)組盡量減少操作次數(shù)。在小游戲中,設(shè)置了和界面一致的二維數(shù)組,數(shù)組的每一位記錄了一個數(shù)字。 地址:https://leetcode.com/problems/move-zeroes/ 應(yīng)用場景說明 這個題是很Easy的一道題,它的應(yīng)用場景是在我嘗試寫小游戲2048時,...

    ckllj 評論0 收藏0
  • leetcode 一些算法題目記錄

    摘要:題目全部用做的,基本上每天一題的節(jié)奏。題目這里記錄自己對一些題目的思路和想法數(shù)字回文,說不能用額外的空間一下子懵逼了,第一概念就是換成字符串比較,但是感覺這樣子做就沒有意義了。找出任意兩條線段與軸組成的木桶,可以盛水最大的值。 前言 showImg(https://segmentfault.com/img/bVT2JE?w=1992&h=1310); 原文地址 無意間發(fā)現(xiàn) LeetCo...

    mayaohua 評論0 收藏0
  • leetcode390.Elimination Game

    摘要:題目要求假設(shè)有一共個數(shù)字,從左往右開始每隔一位刪除一個數(shù)字,到達(dá)最右側(cè)后,再從右往左每隔一位刪除一個數(shù)字,如此反復(fù),直到剩下最后一個數(shù)字。由此可見,假如我們定義一個遞歸函數(shù)我們可以有來獲取結(jié)果。 題目要求 There is a list of sorted integers from 1 to n. Starting from left to right, remove the fir...

    Godtoy 評論0 收藏0
  • [Leetcode] Find the Duplicate Number 找到重復(fù)數(shù)字

    摘要:暴力法復(fù)雜度時間空間思路如果不用空間的話,最直接的方法就是選擇一個數(shù),然后再遍歷整個數(shù)組看是否有跟這個數(shù)相同的數(shù)就行了。二分法復(fù)雜度時間空間思路實際上,我們可以根據(jù)抽屜原理簡化剛才的暴力法。 Find the Duplicate Number Given an array nums containing n + 1 integers where each integer is bet...

    chnmagnus 評論0 收藏0
  • 程序員進(jìn)階之算法練習(xí):LeetCode專場

    摘要:例如題目解析題目的意思很明顯,就是把兩個數(shù)字加起來,需要考慮進(jìn)位的情況??偨Y(jié)這個題目如果都能獨立完成,那么水平已經(jīng)可以足以應(yīng)付國內(nèi)各大企業(yè)的算法面。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實踐干貨哦~ 本文由落影發(fā)表 前言 LeetCode上的題目是大公司面試常見的算法題,今天的目標(biāo)是拿下5道算法題: 題目1是基于鏈表的大數(shù)加法,既考察基本數(shù)據(jù)結(jié)構(gòu)的了解,又考察在處理加法過程中...

    MrZONT 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<