代码改变世界

随笔分类 - Python

CodeKata-Data Munging

2013-03-03 22:43 by MichaelYin, 237 阅读, 收藏, 编辑
摘要:这次的CodeKata主要训练的是正则的使用,之前了解正则是在Asp.net的URL处理上,比如进行URL的重写需要进行正则的匹配,这次正好学习学习。第一个问题是对天气数据的提取,取出温度分布最小的那一天,使用正则中的group就可以很方便的取出相应的数据第二个问题是根据英超成绩找出净胜球最接近0的球队原理和上一个相同,考察的也是正则表达式中的group,后面的无关数据不需要匹配,所以只要能确保解析到我要的数据就OK了。第三个问题是对前两个问题的代码进行分析,提取出共用的部分,进行重用。考察前两个问题的代码,发现文件读取,正则处理,都是很类似的逻辑,所以将这部分进行提取抽象成一个类,将正则,相 阅读全文

CodeKata-How Big, How Fast?

2013-02-19 23:40 by MichaelYin, 157 阅读, 收藏, 编辑
摘要:这次主要是训练的对于基本空间和时间复杂度的一些估计的思考,作者承诺一周后给出答案,不过到现在为止答案也木有见到,莫非是读者自己去讨论?首先是对于十进制很大数字所占bit位的大致估计,只要知道2的十次方是1024,然后1024约等于1000,按照这个对比关系得出结果即可。第二个题目是对于存储空间的估计,人名,地址,电话号码啥的大概多少位也不是个定数,自己估计下就行,单个字符的话如果是ASC码的话按照一个字节来处理(编码方式决定这里的字节数),最后得出大概的结果就行。二分法查找的那个题目文章后面有评论给出了解法 ,不过我觉得这个解法是有问题的。它把两个之间通过一个比例关系来推导出最后结果所需要的时 阅读全文

CodeKata-Karate Chop

2013-02-17 21:47 by MichaelYin, 128 阅读, 收藏, 编辑
摘要:这个题目的意思是让读者用尽可能的多的方法实现二分查找算法,并对每种算法的优劣进行比较,题目详情可点击这里。二分法查找其实并不难,比较常见的就是两种方法,递归和迭代,并且方法中通过边界索引值进行计算,不会对原有的array进行任何修改。 在Python里面,优雅的切片运算符提供了另外一种方法的思路。在调用时不停的对需要进行比较的列表进行切片操作,不管是递归还是迭代,得到的都是切片后的列表。 代码... 阅读全文