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