博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寒假挑战PythonTip(一人一python)总结——算法是程序的灵魂,程序员的心法
阅读量:6068 次
发布时间:2019-06-20

本文共 1325 字,大约阅读时间需要 4 分钟。

 
 

  2014年2月中旬,我上升到挑战python英雄榜第3名。这是我寒假修炼算法的成果之一。来一下总结吧!

 

  Linux的创始人Linus Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:

    “烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。”

  由这句话的启发开始,加上我越来越觉得自己编程能力不足,码代码经常要重构,逻辑思维不过细腻谨慎。正是过于关注代码,完成率所致。我已经学过C/C++/nasm/java/python/html/js/jq/shell等等语言,对计算机世界的工作原理有比较好的认识,但代码能力一直上不去。我想算法,就是我的瓶颈。于是有了以下故事。

  寒假开始,我便在项目工作之余扫pythontip上的题。十几天里,有时一天7、8道题,有时2、3题,我的排名慢慢从第N页到第4页到第2页,让后到第1页。当我扫完101题后,我成功了42题,刚好排在第一页最后一名。然后我休息了一下,继续有成功几题。这大概就是我的无算法时代极限了。

  第二阶段,我网搜博客,算法,学习排序。好来买了《编程珠玑》和《编程之美》,边看边攻克pyhtontip上的题目。

  在这博客中学习了很多,尤其是看到问题一句话就解决时,恍然大悟。

  1、有很多利用lambda, reduce, map, zip, 列表分片/解析, sum, max, min, divmod, round, hex/oct/bin; set,list,dict; 一句话解决的。这是我认为python强大原因,非常好用。

  2、关于二进制‘1’的处理是非常妙的,这些题往往诠释了计算机较人类思维不同的特性,以及如何能让程序员思考得更“计算机”一些。在《编程之美》,上面提到的博客中都有提到。

  3、独立思考,让后比较,我获得更多。在最大连续子序列,最大非连续子序列,最长回文子字符串中,我收获很经典的算法。同时还想出来与一拼的做法。

  

L = '#'.join(list(L)) # len is odd now!l = len(L) o,r=0,0 # 圆心,半径(不计圆心)for i in range(1,l):    if i+r

3月13日的 格式优化版:

L = '#'.join(L)L = '#'+L+'#'  # 因为这句,末尾print语句统一了。o,r = 0,0l = len(L)for i in xrange(l):    if i+r >= l:        break    if L[i-r:i]==L[i+r:i:-1]:        o = i                j = r+1 # 尝试加一        while o-j>=0 and o+j

 

  又经过10多天,我又扫完一遍题,这次我以72题的成绩排在和之后第三名。

  python是很美很简单语言,如其名。

题外话:

  没能及时报考C语言二级,非常遗憾,英语六级不知道报呢还是不报好。

 

转载于:https://www.cnblogs.com/weishun/p/py-algorithm.html

你可能感兴趣的文章
输入一个数字计算圆的面积
查看>>
在Delphi中隐藏程序进程
查看>>
AngularJS PhoneCat代码分析
查看>>
MEF元数据应用说明
查看>>
maven错误解决:编码GBK的不可映射字符
查看>>
2016/4/19 反射
查看>>
SharePoint Wiki发布页面的“保存冲突”
查看>>
oracle 10g 数据库与客户端冲突导致实例创建无监听问题
查看>>
Delphi中读取文本文件的方法(实例一)
查看>>
Linux常用命令
查看>>
Android开源代码解读の使用TelephonyManager获取移动网络信息
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VS2008查看dll导出函数
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
iOS - Library 库
查看>>