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

資訊專(zhuān)欄INFORMATION COLUMN

13. 羅馬數(shù)字轉(zhuǎn)整數(shù)-----leetcode刷題(python解題)

Gu_Yan / 1542人閱讀

摘要:題目羅馬數(shù)字包含以下七種字符,,,,,和。字符數(shù)值例如,羅馬數(shù)字寫(xiě)做,即為兩個(gè)并列的。通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。同樣地,數(shù)字表示為。給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。

[TOC]

題目

羅馬數(shù)字包含以下七種字符: I, V, X, L,C,D 和 M。

字符          數(shù)值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

例如, 羅馬數(shù)字 2 寫(xiě)做 II ,即為兩個(gè)并列的 1。12 寫(xiě)做 XII ,即為 X + II 。 27 寫(xiě)做 XXVII, 即為 XX + V + II 。

通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例,例如 4 不寫(xiě)做 IIII,而是 IV。數(shù)字 1 在數(shù)字 5 的左邊,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 。同樣地,數(shù)字 9 表示為 IX。這個(gè)特殊的規(guī)則只適用于以下六種情況:

I 可以放在 V (5) 和 X (10) 的左邊,來(lái)表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左邊,來(lái)表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左邊,來(lái)表示 400 和 900。

給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。輸入確保在 1 到 3999 的范圍內(nèi)。

示例 1:

輸入: "III"
輸出: 3

示例 2:

輸入: "IV"
輸出: 4

示例 3:

輸入: "IX"
輸出: 9

示例 4:

輸入: "LVIII"
輸出: 58
解釋: L = 50, V= 5, III = 3.

示例 5:

輸入: "MCMXCIV"
輸出: 1994
解釋: M = 1000, CM = 900, XC = 90, IV = 4.

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/probl...
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

解答

使用的簡(jiǎn)單的循環(huán)和條件語(yǔ)句進(jìn)行解題

class Solution(object):
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        num = 0
        len_s = len(s)
    
        for a,i in enumerate(s):
            if i == "I":
                if a+1 >= len_s:
                    num +=1
                else:
                    next_i = s[a+1]
                    if next_i == "V" or next_i == "X":
                        num -= 1
                    else:
                        num += 1
            if i == "V":
                num +=5
            if i == "X":
                if a+1 >= len_s:
                    num +=10
                else:
                    next_i = s[a+1]
                    if next_i == "L" or next_i == "C":
                        num -= 10
                    else:
                        num += 10
            if i == "L":
                num +=50
            if i == "C":
                if a+1 >= len_s:
                    num +=100
                else:
                    next_i = s[a+1]
                    if next_i == "D" or next_i == "M":
                        num -= 100
                    else:
                        num += 100
                    
            if i == "D":
                num +=500
            if i == "M":
                num +=1000
        return num
執(zhí)行效果

執(zhí)行結(jié)果:通過(guò)

執(zhí)行用時(shí) :68 ms, 在所有 Python 提交中擊敗了59.07%的用戶(hù)

內(nèi)存消耗 :11.7 MB, 在所有 Python 提交中擊敗了27.43%的用戶(hù)

解題效果一般,之后需優(yōu)化

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

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

相關(guān)文章

  • leetcode刷題python解題)-----9.回文數(shù)

    摘要:題目判斷一個(gè)整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序從左向右和倒序從右向左讀都是一樣的整數(shù)。示例輸入輸出示例輸入輸出解釋從左向右讀為。進(jìn)階你能不將整數(shù)轉(zhuǎn)為字符串來(lái)解決這個(gè)問(wèn)題嗎來(lái)源力扣鏈接著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。 題目: 判斷一個(gè)整數(shù)是否是回文數(shù)。回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: ...

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

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

    v1 評(píng)論0 收藏0
  • LeetCode - 007 - 整數(shù)轉(zhuǎn)(reverse-integer)

    摘要:詳細(xì)介紹將其他值轉(zhuǎn)成數(shù)字值。此方法更改數(shù)組的長(zhǎng)度。詳細(xì)介紹解題思路首先,將傳入的數(shù)字轉(zhuǎn)換成字符串,并分割成數(shù)組。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-05-19 09:42:39 Recently revised in 2019-05-19 16:08:24 Hello 小伙伴們,如果覺(jué)得本文還不錯(cuò),記得給個(gè) star , 小伙伴們...

    venmos 評(píng)論0 收藏0
  • 小李飛刀:刷題第四彈!

    摘要:第二題羅馬數(shù)字轉(zhuǎn)整數(shù)難度簡(jiǎn)單羅馬數(shù)字包含以下七種字符,,,,,和。字符數(shù)值例如,羅馬數(shù)字寫(xiě)做,即為兩個(gè)并列的。通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。 隨便說(shuō)點(diǎn)啥 TIME:2019-02-01昨晚其實(shí)刷了題來(lái)著,但是沒(méi)有解出來(lái),哭泣!但是,今天重新寫(xiě)了下,解出來(lái)咯~所以今天的題量要增加咯~我會(huì)加油的! 第一題 14. 最長(zhǎng)公共前綴難度:簡(jiǎn)單 ...

    luffyZh 評(píng)論0 收藏0
  • 20. 有效的括號(hào)-----leetcode刷題python解題

    摘要:題目給定一個(gè)只包括,,,,,的字符串,判斷字符串是否有效。有效字符串需滿(mǎn)足左括號(hào)必須用相同類(lèi)型的右括號(hào)閉合。注意空字符串可被認(rèn)為是有效字符串。解答執(zhí)行效果執(zhí)行結(jié)果通過(guò)執(zhí)行用時(shí)在所有提交中擊敗了的用戶(hù)內(nèi)存消耗在所有提交中擊敗了的用戶(hù) [TOC] 題目 給定一個(gè)只包括 (,),{,},[,] 的字符串,判斷字符串是否有效。 有效字符串需滿(mǎn)足: 左括號(hào)必須用相同類(lèi)型的右括號(hào)閉合。 左括號(hào)必...

    zhangyucha0 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<