LeetCode Q13 羅馬數字轉整數

2021-10-18 02:16:39 字數 916 閱讀 3528

原題位址

class

solution

; string reps=

;int index =

0,res=0;

while

(s.length()

!=0)else

if(s.

length()

>

1&&s.

substring(0

,2).

equals

(reps[index]))

else index++;}

return res;

}}

我的思路就是,從左往右進行轉換.從左往右是由大到小的.然後檢驗是否符合乙個字元的情況,符合就加上去.如果不符合則檢查是否符合兩個字元的情況.如果都不符合,就移動到下乙個字元.使用的記憶體和速度相比其他解來說都有點點慢.

另外乙個思路就是只檢查乙個字元.從左往右,如果前乙個字元比後乙個字元小,則這個字元是負數,變成減.

class

solution

return res;

}public

static

intzhuanhuan

(char c)

return0;

}}

再優化一下速度

class

solution

return res;

}public

static

intzhuanhuan

(char c)

return0;

}}

13 羅馬數字轉整數

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

13 羅馬數字轉整數

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

13 羅馬數字轉整數

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