Project Euler可能是目前世界上人气最高的编程挑战网站了,自十年前创立以来,这里也已经逐渐成为成千上万名用户的活动之家。大家每周都能在这里找到新的挑战题目,但别误以为这样的节奏太过缓慢——此前已经被解决的超过450道难题绝对能榨干您的脑汁。
不过这些题目本身并非难到高不可攀——相反,它们大多强调思路与解决问题的能力,旨在帮助大家培养并学习到更多与所用编程语言相关的知识积累。总之,各类题目都高度针对解决途径而出现,能够确保大家以清晰的思路了解自己到底在利用编程语言做些什么。
要了解更多与Project Euler相关的情况,大家不妨点击以下链接: 维基百科、Reddit、Stack Overflow以及Google Code。
该网站甚至推出了专门的Android应用程序,大家可以点击此处进行下载。
Daily ProgrammerFor learning refreshing or just for fun
这里我要介绍个人最喜爱的网站之一:Reddit推出的Daily Programmer。如果大家希望了解更多与编程及问题解决思路相关的内容,这里将是非常理想的讨论平台。我认为这正是Daily Programmer目前的核心定位所在,而且各位每周能够在这里找到三道等待解决的独特难题。
更值得一提的是,这里还拥有大量活跃用户。我们在评论当中提交的所有内容都会得到众多社区成员的查阅,因此每项解决方案都能得到点评及回复。
强烈推荐!
CodilityRefactor yourself. Train your programming skills Codility
在这里,大家能够找到大量针对不同编程语言所设计的思维挑战难题。它们根据不同难度作出了适当的排序,而且整个流程将有40到50道难题为各位设下重重考验。
每一道难题都提供详尽而充分的解释,而且根据我的个人体验,各试题都设定了时间限制——所以不要懈怠,一鼓作气将其解决吧!
SPOJSphere Online Judge SPOJ
Sphere Online Judge (简称SPOJ)是一座包罗万象的宝库,其中的数千道编程挑战试题足以让大家忙上好一阵子。SPOF当中挑战题目的涵盖范围同样广泛,从最基本的编程难题到艰深的算法难关无所不包——后者要求大家具备某些高超的问题解决技巧,例如为NP难题寻找最佳启发式算法。SPOJ允许大家利用所能想到的几乎每一种编程语言作为解题工具,并针对您所给出的解决方案提供反馈意见——其中可能包含一些有针对性的额外提示。
SPOJ背后还拥有一整套令人赞叹的社区(用户数量超过30万),这里的活跃成员们乐于帮助彼此在论坛上解决难题。SPOJ允许用户添加自己的挑战题目、组织编程竞赛并比拼解决问题的能力。无论是新手上路还是从业多年的老鸟,都能够在这里找到适合自己的定位与内容。对大多数用户来说,它提供了一套理想的大型编程竞赛前不可或缺的预热环境。众多理论计算机科学家的加入为这里营造出一种充满激情的编程钻研氛围,但又同时流露出极强的亲和力——大家从该网站的宣传口号就能感受到这一切:“Where Hackers eat Crackers(作黑客,不作骇客——cracker亦有饼干之意,代表这里如下午茶般的惬意气氛)。”
CodeChefCodeChef
CodeChef由Directi所创建,这里不仅是一个旨在鼓励并挑战开发人员解决难题的社区,同时也为用户提供了一整套实践、竞赛并提升自身技能水平的平台。这里包含有大量供用户解决的挑战题目集合,大家也可以随意查看其他成员在解决这些编程难题时所使用的源代码。