一段时间在编程比赛中我遇到了一个令人费解的问题,从那以后它一直困扰着我.虽然我不记得它,但我会尽力重现它:
杰克从数字线上的0开始,向任一方向跳跃一个单位.他所做的每次连续跳跃都比之前的1个单位长,并且可以在任一方向上进行.编写一个带有数字的程序,并返回Jack为达到该数字而进行的最小跳跃次数.
如果这不是一个好问题,或者如果标题被认为具有误导性,我会提前道歉.
我正在通过Allen Downey从Think Python学习python,我在这里练习6 .我写了一个解决方案,起初看起来似乎是对这里给出的答案的改进.但是在运行两者时,我发现我的解决方案需要一整天(约22小时)来计算答案,而作者的解决方案只花了几秒钟.谁能告诉我如何作者的解决方案是如此之快,当它遍历包含113812个字的字典,并应用递归函数到每个计算的结果?
我的解决方案
known_red = {'sprite': 6, 'a': 1, 'i': 1, '': 0} #Global dict of known reducible words, with their length as values
def compute_children(word):
"""Returns a list of all valid words that can be constructed from the word by removing one letter from the word"""
from dict_exercises import words_dict
wdict = words_dict() #Builds a dictionary containing all valid English words as keys
wdict['i'] = 'i'
wdict['a'] = 'a'
wdict[''] = …Run Code Online (Sandbox Code Playgroud) 我是一名刚从Python(在IDLE上)迁移到C++的新手程序员,我发现只知道一些STL数据结构的"基本"方法让我很不舒服.是否有像C++中的Python help()函数,或者其他方式来访问标准库中易懂和简洁的文档?
编辑:为了清楚起见,我正在寻找一种从我的计算机访问文档的方法,最好是从IDE /编译器中访问(我目前在Windows 7中使用并优先选择g ++ on Cygwin.但是我也有Code :: Blocks).请不要推荐书籍或将此问题标记为The Definitive C++ Book Guide and List的副本.