推 ides13: slice[start:end:step],頭尾空白表不指定,step是-1。 06/01 12:42
→ ides13: s[::-1]表示從尾巴執行到開始,每步驟是向後1步。 06/01 12:44
推 Yshuan: 因為python貼心的會將負數N的index提取 當作倒數第N個的 06/01 14:35
→ Yshuan: 我s[::-1] 我是想像成 for (i=0;abs(i)<len(s);--i) 在跑 06/01 14:36
推 vi000246: 我也很討厭python的slice語法 都要死背 06/01 16:37
推 ides13: 在start和end的負號是指倒數第幾個。在step負號指反向。 06/01 17:17
→ LessonWang: 感謝各位的解釋 我已經了解了 有了slice蠻方便的 06/01 17:48
→ os653: 不用slice語法的話,程式會多很多行,讀起來也不直覺 06/01 20:35
真的 而且字串要反轉 一般都使用迴圈來解決 用slice一行搞定 不知道python的內部演算法是否比迴圈還快呢
※ 編輯: LessonWang (110.28.168.13), 06/01/2017 22:40:33
→ uranusjr: 反轉字串 str(reversed(s)) 一行不就搞定了嗎 06/02 11:32
況且線上評測系統online judge會限制使用特定的函數 剛好slice不是函數 蠻方便的
其實用slice也是一行搞定xdd
※ 編輯: LessonWang (110.28.168.13), 06/02/2017 13:05:25
※ 編輯: LessonWang (110.28.168.13), 06/02/2017 13:06:52
→ vi000246: 刷leetcode還是不要用現成的函數 手動刻一個吧 06/02 16:01
你說的是 可是有執行時間限制的話 我還是傾向於使用原生的slice來反轉字串 畢竟原生的內部函式演算法 應該是比我們手刻的還快吧(?
※ 編輯: LessonWang (110.28.168.13), 06/02/2017 19:35:21
推 jrshiang0423: 不一定比手刻快,除非寫的很糟糕 06/11 04:29