刷leetcode一周了,從easy級別開始刷的。可能是自己基礎太薄弱,刷完之後容易忘記,另外,有些題有思路,但是不能正常快速的轉換成程式描述,程式的實現能力差。今天先把上週刷的5道題做個小的總結。
1.zigzag conversion (『之』字形字串反轉)
p a h n 048
a p l s i i g --> 135
79y i r 2610
之字型讀取順序為:paypalishiring 共3行
反轉之字型之後的讀取順序為:pahnaplsiigyir
convert("paypalishiring", 3) should return
"pahnaplsiigyir".
分析:題目給出了兩個變數,乙個是字串,乙個是行數.如果要輸出轉換後的字串順序,我們要一行一行的依次讀取,然後便利;所以就變成了找行號和字元順序的關係的問題。為了方便,我們可以把字串中的字母依次替換成012345678…依次類推。
比較容易看出的規律是第一行的字母順序和最後一行的字母順序。當行數為3時,第一行,最後一行依次為0,2,4,6,8,10….可以根據這個數列找到和行號n之間的關係.
接下來就是找剩餘的中間的行的規律,通過測試資料會發現,上面的少的是乙個倒三角,下面少的是乙個正三角。我們找到也是其中的規律就方便了解答了。
最後進行迴圈的時候,要保證不能超過字串的長度.
2.reverse integer (反轉乙個整形數)
//題目要求
example1: x = 123, return
321example2: x = -123, return -321
分析:看到題目後。先不考慮程式上如何實現,先考慮如果是一道數學題,應該怎麼來解。這也做了幾道題之後的感受,就是看到這種題目後不要急著用程式來進行實現,要先吧邏輯想清楚,想明白自己是如何用數學手段解覺的。最後邏輯弄明白了,無非就是程式的實現問題,就比較簡單了。例如此題中的123,要想反轉,首先第一步我們拿到最後一位3,然後第二步拿到2,拿到2之後要放在3後面,所以相當於3*10倍之後加上2,最後拿到1,1要放在32後面,就相當於32*10,然後加上1.最終得到321.了解到這個過程之後,看到其本質是如何用數學思路來解決的,然後描述就好了。之所以不會用程式描述,還是因為沒有看到其數**算本質。最後對於該題,還應該判斷越界的情況,反轉的結果可能超過integer.max_value或者integer.min_value,所以要使用long型別變數表示反轉的結果,最後別忘了判斷越界。
3.string to integer (atoi)(將字串轉換成interger型別)
//該題要考慮的情況就比較多,因為字串有各種形式
分析:
4. palindrome number(水仙花數)
//水仙花數
12321,232,345676543...之類的,前後對應的數就是水仙花數
分析:拿到題目後,我的第一印象就是看成字串,然後將字串反轉,再轉換成int進行比較,但是那種解決方案浪費了空間;另外的比較好想的一種方案是前面做過反轉int型別的數字,我們可以將int數字進行反轉,看和原數字是否相同,判斷是否是水仙花樹。
5.roman to integer(羅馬數字轉換成integer型別)
如果要解決此題,首先我們要弄明白啥是羅馬數字,羅馬數字的計數規則是啥。
羅馬數字:i,ii,iii,iv,v,vi...類似的表示羅馬數字
羅馬數字是用7個字元來表示任一乙個數字,不能表示0;其中:
i表示1,v表示5,x表示10,c表示50,l表示100,d表示500,m表示1000
羅馬數字的計數規則:右加左減
弄明白羅馬數字的概念和計數規則之後,就迴圈判斷字元就好了,對應拿到其下標位置上的字元所對應的十進位制表示數,和下一位進行比較,如果小於下一位,則減去,否則,加上。最後得出結果。 不積跬步無以至千里
1.開始閱讀此流程,如果你還沒開始的話。嚴格地按照步驟執行。2.讀一下習題指南,在xv xvii頁。3.令n 1。4.開始閱讀第n章。不要閱讀該章開始的引言。5.你對該章的話題有無興趣?如果有,跳到第7步,否則,跳到第6步。6.是否n 2?如果不是,跳到第16步。如果是,無論如何請將此章過一遍。第1...
不積跬步,無以至千里
其實不論你求學求到什麼程度,作為普通大眾的我們,不論是懷揣著多麼偉大的夢想,大概率下一開始的我們都是要為別人打工。重要的不是為誰打工 在 打工,而是你想打什麼樣的工,我覺得這應該是我們所要考慮的重點。想打什麼樣的工,就要要求我們本身具備怎麼樣的品質 什麼樣的能力,而這正是我們應該不懈努力前進的方向。...
積跬步以至千里 聽專家前瞻引領,積跬步以至千里
開學季,杭州市實驗外國語學校小學部邀請教育專家進校指導,給全體教師帶來教育教學理念的饕鬄盛宴,為新學期的教育教學工作注入一股推進劑!如何在閱讀教學中培養學生的 高階思維能力 布魯姆按照認知程度,將思維過程劃分為6個層級,由低到高依次是記憶 理解 應用 分析 評價 創造。其中記憶 理解和應用就是我們通...