日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

寒假挑战PythonTip(一人一python)总结——算法是程序的灵魂,程序员的心法

發(fā)布時(shí)間:2025/7/14 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 寒假挑战PythonTip(一人一python)总结——算法是程序的灵魂,程序员的心法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  2014年2月中旬,我上升到挑戰(zhàn)python英雄榜第3名。這是我寒假修煉算法的成果之一。來(lái)一下總結(jié)吧!

?

  Linux的創(chuàng)始人Linus Torvalds在一次演講中有一段涉及“什么才是優(yōu)秀程序員”的話:

    “爛程序員關(guān)心的是代碼。好程序員關(guān)心的是數(shù)據(jù)結(jié)構(gòu)和它們之間的關(guān)系。”

  由這句話的啟發(fā)開始,加上我越來(lái)越覺得自己編程能力不足,碼代碼經(jīng)常要重構(gòu),邏輯思維不過(guò)細(xì)膩謹(jǐn)慎。正是過(guò)于關(guān)注代碼,完成率所致。我已經(jīng)學(xué)過(guò)C/C++/nasm/java/python/html/js/jq/shell等等語(yǔ)言,對(duì)計(jì)算機(jī)世界的工作原理有比較好的認(rèn)識(shí),但代碼能力一直上不去。我想算法,就是我的瓶頸。于是有了以下故事。

  寒假開始,我便在項(xiàng)目工作之余掃pythontip上的題。十幾天里,有時(shí)一天7、8道題,有時(shí)2、3題,我的排名慢慢從第N頁(yè)到第4頁(yè)到第2頁(yè),讓后到第1頁(yè)。當(dāng)我掃完101題后,我成功了42題,剛好排在第一頁(yè)最后一名。然后我休息了一下,繼續(xù)有成功幾題。這大概就是我的無(wú)算法時(shí)代極限了。

  第二階段,我網(wǎng)搜博客,算法,學(xué)習(xí)排序。好來(lái)買了《編程珠璣》和《編程之美》,邊看邊攻克pyhtontip上的題目。

  在PythonTip 上的一些水題這博客中學(xué)習(xí)了很多,尤其是看到問(wèn)題一句話就解決時(shí),恍然大悟。

  1、有很多利用lambda, reduce, map, zip, 列表分片/解析, sum, max, min, divmod, round, hex/oct/bin;?set,list,dict; 一句話解決的。這是我認(rèn)為python強(qiáng)大原因,非常好用。

  2、關(guān)于二進(jìn)制‘1’的處理是非常妙的,這些題往往詮釋了計(jì)算機(jī)較人類思維不同的特性,以及如何能讓程序員思考得更“計(jì)算機(jī)”一些。在《編程之美》,上面提到的博客中都有提到。

  3、獨(dú)立思考,讓后比較,我獲得更多。在最大連續(xù)子序列,最大非連續(xù)子序列,最長(zhǎng)回文子字符串中,我收獲很經(jīng)典的算法。同時(shí)還想出來(lái)與Manacher算法一拼的做法。

  

L = '#'.join(list(L)) # len is odd now! l = len(L)o,r=0,0 # 圓心,半徑(不計(jì)圓心) for i in range(1,l):if i+r<l and L[i-r:i] == L[i+r:i:-1]: # 移到:最右方便來(lái)計(jì)算o,r=i,rwhile i+r+1<l and L[i-r-1] == L[i+r+1]:r += 1# print L[o-r:o+r+1]L1 = L[o-r:o+r+1] t1,t2 = L1[::2],L1[1::2]print t1 if any(i!='#' for i in t1) else t2

3月13日的 格式優(yōu)化版:

L = '#'.join(L) L = '#'+L+'#' # 因?yàn)檫@句,末尾print語(yǔ)句統(tǒng)一了。o,r = 0,0 l = len(L) for i in xrange(l):if i+r >= l:breakif L[i-r:i]==L[i+r:i:-1]:o = ij = r+1 # 嘗試加一while o-j>=0 and o+j<l and L[o-j] == L[o+j]:j += 1r = j-1print L[o-r+1:o+r:2]

?

  又經(jīng)過(guò)10多天,我又掃完一遍題,這次我以72題的成績(jī)排在GodIsCoding和YOSHINO之后第三名。

  python是很美很簡(jiǎn)單語(yǔ)言,如其名。

題外話:

  沒能及時(shí)報(bào)考C語(yǔ)言二級(jí),非常遺憾,英語(yǔ)六級(jí)不知道報(bào)呢還是不報(bào)好。

轉(zhuǎn)載于:https://www.cnblogs.com/weishun/p/py-algorithm.html

總結(jié)

以上是生活随笔為你收集整理的寒假挑战PythonTip(一人一python)总结——算法是程序的灵魂,程序员的心法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。