Algorithm西疤。主要是為了編程訓(xùn)練和學(xué)習(xí)烂翰。每周至少做一個(gè) leetcode 的算法題(先從Easy開始夯缺,然后再M(fèi)edium,最后才Hard)甘耿。進(jìn)行編程訓(xùn)練踊兜,如果不訓(xùn)練你看再多的算法書,你依然不會(huì)做算法題佳恬,看完書后捏境,你需要訓(xùn)練于游。關(guān)于做Leetcode的的優(yōu)勢(shì),你可以看一下我在coolshell上的文章 Leetcode 編程訓(xùn)練 - 酷 殼 - CoolShell垫言。
Review:主要是為了學(xué)習(xí)英文贰剥,如果你的英文不行,你基本上無緣技術(shù)高手筷频。所以蚌成,需要你閱讀并點(diǎn)評(píng)至少一篇英文技術(shù)文章,我個(gè)人最喜歡去的地方是http://Medium.com(需要梯子)以及各個(gè)公司的技術(shù)blog凛捏,如Netflix的担忧。
Tip:主要是為了總結(jié)和歸納你在是常工作中所遇到的知識(shí)點(diǎn)。學(xué)習(xí)至少一個(gè)技術(shù)技巧坯癣。你在工作中遇到的問題瓶盛,踩過的坑,學(xué)習(xí)的點(diǎn)滴知識(shí)示罗。
Share:主要是為了建立你的影響力惩猫,能夠輸出價(jià)值觀。分享一篇有觀點(diǎn)和思考的技術(shù)文章鹉勒。
Algorithm
羅馬數(shù)字包含以下七種字符:
I
帆锋,V
,X
禽额,L
锯厢,C
,D
和M
脯倒。字符 數(shù)值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000
例如实辑, 羅馬數(shù)字 2 寫做
II
,即為兩個(gè)并列的 1藻丢。12 寫做XII
剪撬,即為X
+II
。 27 寫做XXVII
, 即為XX
+V
+II
悠反。通常情況下残黑,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例斋否,例如 4 不寫做
IIII
梨水,而是IV
。數(shù)字 1 在數(shù)字 5 的左邊茵臭,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 疫诽。同樣地,數(shù)字 9 表示為IX
。這個(gè)特殊的規(guī)則只適用于以下六種情況:
I
可以放在V
(5) 和X
(10) 的左邊奇徒,來表示 4 和 9雏亚。X
可以放在L
(50) 和C
(100) 的左邊,來表示 40 和 90摩钙。C
可以放在D
(500) 和M
(1000) 的左邊罢低,來表示 400 和 900。給定一個(gè)羅馬數(shù)字胖笛,將其轉(zhuǎn)換成整數(shù)奕短。輸入確保在 1 到 3999 的范圍內(nèi)。
示例 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:
data = {"I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000}
num = 0
for i in range(len(s)):
if i < len(s) - 1 and data[s[i]] < data[s[i + 1]]:
num -= data[s[i]]
else:
num += data[s[i]]
return num
- 首先使用字典來列出字符串對(duì)應(yīng)的數(shù)字大小
- 假設(shè)每一位都代表一個(gè)數(shù)字匀钧,那么肯定是按照映射關(guān)系從大到小排列。
- 實(shí)際上存在兩個(gè)字母組成的內(nèi)容谬返,且兩者的差值為較小值
所以只要遍歷輸入的字符串之斯,當(dāng)它不是最后一位的時(shí)候判斷一下它是否小于它的后一位。
如果小于遣铝,則總數(shù)減去它佑刷;
如果大于,則總數(shù)加上它酿炸;
Review
Time Is Your Most Valuable Resource
Make sure everything you do is helping you achieve your most important goals
If you have a hard time saying no, or a hard time prioritizing your tasks, you are guaranteed to drown.
Your time is your most valuable resource. You can’t make more. You can’t pause it. You can only allocate it.
Realize that business as usual won’t work
Delegating is a gift with two recipients.
You get more time, and someone else gains valuable experience.
It has limited return on investment, because you’re swapping one item for another.
Tip
正在閱讀《Jenkins 2 權(quán)威指南》準(zhǔn)備使用Jenkinsfile來進(jìn)行流水線代碼迭代
期望解決之前每次更新都需要手動(dòng)調(diào)整代碼瘫絮,修改WEB GUI上的內(nèi)容的情況。
不過采用Json Schema編寫的了Extended Choice Parameter后填硕,暫時(shí)不知道如何進(jìn)行腳本化的轉(zhuǎn)換麦萤。
Share
- 最近很喜歡前端知識(shí),但是沒有太多精力投入扁眯,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的例子
- 工作采用pytest壮莹,所以之前閱讀了元組之后想要試驗(yàn)一下python代碼塊的概念,寫了一個(gè)簡(jiǎn)單的demo
歡迎關(guān)注我的公眾號(hào):zx94_11