国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

LiveVideoStack / 1415人閱讀

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

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

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

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

羅馬數(shù)字轉(zhuǎ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分別表示當前節(jié)點和下一個節(jié)點,當當前節(jié)點和下一個節(jié)點的值不同時,則將當前temp中的值根據(jù)比較結(jié)果添加至result,并賦值temp為下一個節(jié)點的值,否則將值累加至temp
為了比較方便,我在輸入的string最后添加了一個‘O’其對應的值為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é)果性能更好 可能和測試用例有關
        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)化為對應的數(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://specialneedsforspecialkids.com/yun/66840.html

相關文章

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

    摘要:解法目的就是把一個數(shù)組中所有為的數(shù)移動到數(shù)組的尾部,并保證其他元素相對位置不變。要求是在原數(shù)組上修改,不要額外引入其他的數(shù)組盡量減少操作次數(shù)。在小游戲中,設置了和界面一致的二維數(shù)組,數(shù)組的每一位記錄了一個數(shù)字。 地址:https://leetcode.com/problems/move-zeroes/ 應用場景說明 這個題是很Easy的一道題,它的應用場景是在我嘗試寫小游戲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ù)字,到達最右側(cè)后,再從右往左每隔一位刪除一個數(shù)字,如此反復,直到剩下最后一個數(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 找到重復數(shù)字

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

    chnmagnus 評論0 收藏0
  • 程序員進階之算法練習:LeetCode專場

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

    MrZONT 評論0 收藏0

發(fā)表評論

0條評論

LiveVideoStack

|高級講師

TA的文章

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