python 化学模块_Python chemif包_程序模块 - PyPI - Python中文网
實施
解決這個問題的方法是使用一個while循環的遞歸下降算法。這個循環的基本結構是:todo = [[item1, processing_data],[item2, processing_data], ... ]
done = []
while len(todo)>0:
item_to_workon = todo.pop()
for each_branch in branches:
stuff.do()
data.process()
if end_condition.met()
done.append(processing_data)
else
todo.append([stuff, processing_data])
return done
也就是說,從todo列表中彈出一個項目,處理該節點,并將結果節點放回todo列表(除非滿足結束條件,否則在這種情況下結束)。然后在todo列表為空時返回done列表。
因此,它從第一個字母開始,嘗試一個或兩個元素組合,如果成功找到匹配項,則將項(剩余字符)與處理數據的一起放回todo列表,即元素列表。如果它在單詞的其余部分用盡了可能的路徑,而你還沒有到達單詞的結尾,那就意味著你不能用給定的元素拼寫它。
我希望您會同意,這個實現比使用遞歸更干凈、更容易理解。它的計算強度也較低,因為不需要在每個節點(即每個函數調用)重新定義一個具有自己作用域的新變量空間,從而使用較少的資源。
總結
以上是生活随笔為你收集整理的python 化学模块_Python chemif包_程序模块 - PyPI - Python中文网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山东大学继续教育计算机在线作业,山东大学
- 下一篇: python 匹配字符串map lamb