|
贴一个不完整的吧,算是抛砖引玉……1.def main():2. SouceData=[2,3,4,1,1,5,0];3. SouceData.sort();4. MatchData = [0];5. Search(5,SouceData,MatchData);6.7.def Search(tag,SD,MD,st=0):8. if tag - SD[st] == 0:9. print MD[1:];10. return True;11. elif tag - SD[st] > 0:12. ifst == len(SD):13. return False;14. else:15. for i in range(1,len(SD)-st):16. MD.append(SD[st+i]);17. re = Search(tag-SD[st],SD,MD,st+i)18. MD.pop();19. if re == True:20. continue;21. else: #re == False22. return True;23. return True;24. else:25. return False;26.27.28.if __name__ == '__main__':29. main();结果中存在一些重复的模式……[1, 1, 3][1, 4][1, 4][2, 3][5] |
|
共 1 个关于本帖的回复 最后回复于 2013-8-16 10:11