你不知道的按位运算

先来看LeetCode上的Divide Two Integers题目要求:

Divide two integers without using multiplication, division and mod operator.

就是说不用乘法,除法,求模运算来实现两个整数相除,看起来很简单,我可以用除数减去被除数,直到除数小于被除数,记录减法操作的次数即可。假设是计算m/n,那么时间复杂度为O(m/n)。用Python实现后,Time Limit Exceeded。我们考虑有没有更加优化的算法呢?

如果很难想得到,那就先来回忆下二进制数按位运算的一些知识。

Read More

两篇文章帮你入门Django(下)

两篇文章帮你入门Django(上)一文中,我们已经做了一个简单的小网站,实现了保存用户数据到数据库,以及从后台数据库读取数据显示到网页上这两个功能。

看上去没有什么问题了,不过我们可以让它变得更加完美,比如说为它添加一个简单的后台,用来管理我们的Question数据库,或者是写点测试单元来看看我们的程序有没有什么Bug。

后台管理

首先需要添加后台管理员账号,只需要简单的 createsuperuser 命令,如下:

$ python manage.py createsuperuser
Username (leave blank to use 'feizhao'): happy
Email address:
Password:
Password (again):
Superuser created successfully.

Read More

记一次被骗的过程

先来看一个段子:

小明: 给你出一道简答的题目
小红: 好啊
小明: 从前有两个人,一个叫“我爱你”,一个叫“我不爱你”,后来“我不爱你”死了,那剩下谁?
小红: 我爱你啊
小明: 我也爱你

小红就这样不知不觉地说出了小明想让她说的话,小明可真是一个伟大的骗子!不过小明小红之间的骗与被骗可能造就了一段美满的姻缘,而最近朋友的被骗却导致他银行卡里的钱全部没了。

Read More