swift 演算法 簡單4 羅馬文字轉數字

2021-09-24 07:45:43 字數 790 閱讀 1216

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

解法:

func romantoint(_ s: string) -> int else

} else else

}else

}}else

}return res

}private func initdict() -> [string: int]

swift 富文字文字的簡單使用

如果需要乙個字元前後文字顏色不一樣,也就是說乙個字串分成多個部分,每個部分的屬性 顏色,字型,大小等 不一樣,那就是富文字文字 nsmutableattributedstring 直接上 了 let str 今宵杯中映著明月 物華天寶人傑地靈 let attrstr nsmutableattribu...

簡單洗牌演算法 swift3 0

knuth 和durstenfeld 在fisher 等人的基礎上對演算法進行了改進。每次從未處理的資料中隨機取出乙個數字,然後把該數字放在陣列的尾部,即陣列尾部存放的是已經處理過的數字 這是乙個原地打亂順序的演算法,演算法時間複雜度也從fisher演算法的 o n 2 提公升到了 o n 洗牌演算...

swift 演算法 簡單9 移除元素

給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...