LeetCode12 整數轉羅馬數字

2021-08-20 15:46:03 字數 1458 閱讀 6577

題目大意:將乙個1到3999範圍內的整數轉為羅馬數字

題目分析:首先熟悉轉換規則,然後可以使用兩個list儲存對應的對映關係,然後每次從大到小看num是否大於1000,大於900,大於500,若在某個區間的話,就將羅馬數字加進來,num減去相應的數值,直到num為0

**展示:

class solution(object):

def inttoroman(self, num):

intform = [1000,900,500,400,100,90,50,40,10,9,5,4,1]

romanform = ["m","cm","d","cd","c","xc","l","xl","x","ix","v","iv","i"]

string = ""

while num!=0:

for i in range(0,len(intform)):

if num>=intform[i]:

string += romanform[i]

num -= intform[i]

break

return string

方法二:不使用兩個陣列來儲存對應關係,使用if else的結構,只是邏輯上稍微複雜一點。

**展示:

class solution(object):

def inttoroman(self, num):

result =

while num!=0:

num = self.transform(result,num)

string = ""

for i in range(0,len(result)):

string += result[i]

return string

def transform(self,result,num):

if num>=1000:

num -= 1000

elif num>=900:

num -= 900

elif num>=500:

num -= 500

elif num>=400:

num -= 400

elif num>=100:

num -= 100

elif num>=90:

num -= 90

elif num>=50:

num -= 50

elif num>=40:

num -= 40

elif num>=10:

num -= 10

elif num>=9:

num -= 9

elif num>=5:

num -= 5

elif num>=4:

num -= 4

else:

num -= 1

return num

Leetcode 12 整數轉羅馬數字

題目 羅馬數字包含以下七種字元 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。通常情況下,羅馬數字中小的數字在...

LeetCode 12 整數轉羅馬數字

題目鏈結 題目描述 羅馬數字包含以下七種字元 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 通常...

LeetCode 12 整數轉羅馬數字

羅馬數字包含以下七種字元 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。在羅馬數字中,小的數字在大的數字...