摘要:題目羅馬數(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
摘要:題目判斷一個(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 輸出: ...
摘要:字符數(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ū)別 目錄 一 目錄 二 前言 三 解題 ...
摘要:詳細(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 , 小伙伴們...
摘要:第二題羅馬數(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)單 ...
摘要:題目給定一個(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)必...
閱讀 2138·2021-11-23 09:51
閱讀 3715·2021-10-20 13:49
閱讀 1722·2021-09-06 15:13
閱讀 1834·2021-09-06 15:02
閱讀 3189·2021-09-02 15:11
閱讀 903·2019-08-29 15:37
閱讀 1748·2019-08-29 13:24
閱讀 2288·2019-08-29 11:28