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

資訊專欄INFORMATION COLUMN

LeetCode13 - Roman to Integer

elisa.yang / 1256人閱讀

摘要:解題思路羅馬數(shù)字是符號和加操作的一個組合。他基于以下七個符號。組合規(guī)則基本數(shù)字中的任何一個,自身連用構(gòu)成數(shù)目,或者放在大數(shù)的右邊連用構(gòu)成數(shù)目,都不能超過三個放在大數(shù)的左邊只能用一個。想更一進(jìn)步的支持我,請掃描下方的二維碼,你懂的

  

Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.

解題思路:
羅馬數(shù)字是符號和加操作的一個組合。他基于以下七個符號。

II is 2, and XIII is 13. 羅馬數(shù)字沒有0,所以 207是CCVII,1066 is MLXVI.
計(jì)數(shù)規(guī)則:
1. 若干相同數(shù)字連寫表示的數(shù)是這些羅馬數(shù)字的和,如 III=3;
2. 小數(shù)字在大數(shù)字前面表示的數(shù)是用大數(shù)字減去小數(shù)字,如 IV=4;
3. 小數(shù)字在大數(shù)字后面表示的數(shù)是用大數(shù)字加上小數(shù)字,如 VI=6;

其中每兩個階段的之間有一個減法的表示,比如 900=CM, C 寫在 M 前面表示 M-C。

組合規(guī)則:
(1) 基本數(shù)字 Ⅰ、X 、C 中的任何一個,自身連用構(gòu)成數(shù)目,或者放在大數(shù)的右邊連用構(gòu)成數(shù)目,都不能超過三個;放在大數(shù)的左邊只能用一個。
(2) 不能把基本數(shù)字 V 、L 、D 中的任何一個作為小數(shù)放在大數(shù)的左邊采用相減的方法構(gòu)成數(shù)目;放在大數(shù)的右邊采用相加的方式構(gòu)成數(shù)目,只能使用一個。
(3) V 和 X 左邊的小數(shù)字只能用 Ⅰ。
(4)L 和 C 左邊的小數(shù)字只能用 ×。
(5)D 和 M 左 邊的小數(shù)字只能用 C 。

還有一點(diǎn)需要格外注意 MCM是1900
MCMXCVI是1996 也就是按照邏輯 遍歷到C 的處理,MC先M+C,但是遍歷到第二個M的時候,順序是CM,這個時候要減去這個C以及之前多加的C,也就是減去兩個C。

public class Solution {
    public int romanToInt(String s) {
        HashMap map = new HashMap();
        map.put("I", 1);
        map.put("V", 5);
        map.put("X", 10);
        map.put("L", 50);
        map.put("C", 100);
        map.put("D", 500);
        map.put("M", 1000);
        int value = map.get(s.charAt(0));
        for(int i=1;imap.get(s.charAt(i-1))){           
                value = value + map.get(s.charAt(i))- 2*map.get(s.charAt(i-1)); 
            }
            else{
                value = value + map.get(s.charAt(i));
            }
        }
        return value;
    }
}

想更一進(jìn)步的支持我,請掃描下方的二維碼,你懂的~

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

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

相關(guān)文章

  • Leetcode PHP題解--D82 13. Roman to Integer

    摘要:題目鏈接題目分析將給定的羅馬數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字。要注意,先替換連續(xù)出現(xiàn)的那些。最終代碼若覺得本文章對你有用,歡迎用愛發(fā)電資助。 D82 13. Roman to Integer 題目鏈接 13. Roman to Integer 題目分析 將給定的羅馬數(shù)字轉(zhuǎn)換成阿拉伯?dāng)?shù)字。 思路 用替換法。 要注意,先替換連續(xù)出現(xiàn)的那些。例如,比先替換I,要先替換III。 最終代碼

    CODING 評論0 收藏0
  • leetcode 13 Roman to Integer

    摘要:題目詳情輸入一個字符串形式的羅馬數(shù)字,我們需要將它轉(zhuǎn)換為阿拉伯?dāng)?shù)字表示的整數(shù)。其中輸入的數(shù)字在到的范圍內(nèi)。想法這道題我不太熟悉的地方在于羅馬數(shù)字和阿拉伯?dāng)?shù)字之間的轉(zhuǎn)換規(guī)律。 題目詳情 Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3...

    crossea 評論0 收藏0
  • [Leetcode] Roman to Integer and Integer to Roman

    摘要:正則表達(dá)式思路首先我們要熟悉羅馬數(shù)的表達(dá)方式。驗(yàn)證字符串是否是羅馬數(shù),我們先看一下有效的羅馬數(shù)是什么樣的,假設(shè)該數(shù)字小于,從千位到個位依次拆解。 Valid Roman Numeral 正則表達(dá)式 思路 首先我們要熟悉羅馬數(shù)的表達(dá)方式。M是1000,D是500,C是100,L是50,X是10,V是5,I是1。驗(yàn)證字符串是否是羅馬數(shù),我們先看一下有效的羅馬數(shù)是什么樣的,假設(shè)該數(shù)字小于50...

    wdzgege 評論0 收藏0
  • leetcode 部分解答索引(持續(xù)更新~)

    摘要:前言從開始寫相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時也沒有按順序?qū)懍F(xiàn)在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關(guān)的博客到現(xiàn)在也蠻多篇了。而且當(dāng)時也沒有按順序?qū)憽F(xiàn)在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。 順序整理 1~50 1...

    leo108 評論0 收藏0
  • LeetCode - 013 - 羅馬數(shù)字轉(zhuǎn)整數(shù)(roman-to-integer

    摘要:字符數(shù)值例如,羅馬數(shù)字寫做,即為兩個并列的。通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。給定一個羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。 Create by jsliang on 2019-05-23 13:24:24 Recently revised in 2019-05-23 14:55:20 一 目錄 不折騰的前端,和咸魚有什么區(qū)別 目錄 一 目錄 二 前言 三 解題 ...

    v1 評論0 收藏0

發(fā)表評論

0條評論

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