力扣(十二) 整數轉羅馬數字(貪心演算法)

2021-10-08 01:17:35 字數 1087 閱讀 5945

題目描述

解題

思路:①用給的數去除每個羅馬字母代表的數,能除到則表示有乙個 該字元

②需考慮到6中特殊情況「iv」、「ix」、「xl」、「xc」、「cd」、「cm」

public

string

inttoroman

(int num)

;int

r =newint

[n.length]

;string

ro =

new;

stringbuilder roman =

newstringbuilder(""

);for(

int i =

0; i < n.length; i++)}

return roman.

tostring()

;}

以上為我自己寫的**,看過官方解題後引入知識點:貪心演算法

下為改進後**:

public

string

inttoroman

(int num)

;string

ro =

new;

stringbuilder roman =

newstringbuilder(""

);for(

int i =

0; i < n.length && num>

0; i++)}

return roman.

tostring()

;}

較官方解題優點:記憶體占用低。

原因:①使用stringbuilder物件;

②該物件使用,拼接等不建立新的物件,只在tostring()時建立乙個物件

③使用string拼接或者修改每次都建立乙個物件

⑤字串string一旦被建立就不能被修改

力扣 羅馬數字轉整數

category difficulty likes dislikes algorithms easy 62.44 1225 羅馬數字包含以下七種字元 i,v,x,l,c,d和m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做ii,即為兩...

羅馬數字轉整數 力扣 LeetCode

題目描述 羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元數值i 1v5x 10l50c 100d 500m 1000 例如,羅馬數字 2寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中小的數字在大...

力扣題 羅馬數字轉整數

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中小...