LeetCode字串題心得

2021-09-12 02:31:33 字數 1553 閱讀 1906

羅馬數字包含以下七種字元:ivxlcdm

字元          數值

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。這個特殊的規則只適用於以下六種情況:

給定乙個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的範圍內。

示例 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.

class solution:

def romantoint(self, s: str) -> int:

a =

sum = 0

i = 0

while true:

if i < len(s)-1:

if a[s[i]]sum = sum-a[s[i]]

else:

sum = sum+a[s[i]]

elif i==len(s)-1:

sum = sum+a[s[i]]

else:

break

i=i+1

return sum

刷題(leetcode字串相關)

125.驗證回文字串 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。思路 將字串中的大寫字母轉成小寫,只保留字母和數字,然後將字串與這個字串的反轉作比較 var ispalindrome function s 對比字串和字...

刷題(leetcode字串相關)

38.報數 報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 思路 對前乙個數進行報數,首先遍歷n,把從2開始記錄n的每個數,通過遍歷字串求解遍歷的每個數 var countandsay function n else str newstr return str 67...

leetcode刷題之字串

解法 先建立乙個字典,注意長度為2的字串的值 右邊的值 左邊的值 遍歷字串每個字元,判斷當前字元和前乙個字元是否出現在字典中的六種情況特殊情況,如果在就記錄對應的value,否則取當前key對應的value。注意 1.max函式在這裡是為了防止遍歷第乙個字元的時候出現 1 0 的情況。2.本題主要是...