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

資訊專欄INFORMATION COLUMN

13. 羅馬數字轉整數-----leetcode刷題(python解題)

Gu_Yan / 1533人閱讀

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

[TOC]

題目

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

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

例如, 羅馬數字 2 寫做 II ,即為兩個并列的 1。12 寫做 XII ,即為 X + II 。 27 寫做 XXVII, 即為 XX + V + II 。

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

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

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

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

給定一個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的范圍內。

示例 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.

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/probl...
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

解答

使用的簡單的循環和條件語句進行解題

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
執行效果

執行結果:通過

執行用時 :68 ms, 在所有 Python 提交中擊敗了59.07%的用戶

內存消耗 :11.7 MB, 在所有 Python 提交中擊敗了27.43%的用戶

解題效果一般,之后需優化

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44155.html

相關文章

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

    摘要:題目判斷一個整數是否是回文數。回文數是指正序從左向右和倒序從右向左讀都是一樣的整數。示例輸入輸出示例輸入輸出解釋從左向右讀為。進階你能不將整數轉為字符串來解決這個問題嗎來源力扣鏈接著作權歸領扣網絡所有。 題目: 判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: ...

    Kosmos 評論0 收藏0
  • LeetCode - 013 - 羅馬數字整數(roman-to-integer)

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

    v1 評論0 收藏0
  • LeetCode - 007 - 整數(reverse-integer)

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

    venmos 評論0 收藏0
  • 小李飛刀:刷題第四彈!

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

    luffyZh 評論0 收藏0
  • 20. 有效的括號-----leetcode刷題python解題

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

    zhangyucha0 評論0 收藏0

發表評論

0條評論

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