leetcode每日一題 羅馬數字轉整數

2021-10-23 13:51:59 字數 1382 閱讀 9262

羅馬數字包含以下七種字元: 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 的範圍內。

從右到左遍歷羅馬數字的字元,將羅馬字元對映為對應的阿拉伯數字,若當前的數字大於或等於前乙個數字,則加,否則減。

例如:xxvii等於1+1+5+10+10 = 27 、ix等於10-1=9、xci等於1+100-10。

public

class

trypublic

static

intromantoint

(string s)

else

presum=num;

} sum+=presum;

return sum;

}public

static

intzhuanhuan

(char j)

}}

package main

import

"fmt"

func

main()

func

zhuanhuan

(i string

)int

}func

romantoint

(s string

)int

else

prenum = num

} sum += prenum

return sum

}

LeetCode每日一題 回文數

前言 堅持日更leetcode刷題系列 不積跬步,無以至千里 不積小流,無以成江海。願與諸君共勉!題目 9.回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從...

leetcode 每日一題 回文數

數學解法 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 ...

每日一題 LeetCode

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...