• Automatches


    import os
    
    def combine(ArrayList,count):
        ArrayList=list(ArrayList)
        newArrayList=[]
        for i in range(0,ArrayList.__len__()-count+1):
            LackArray=ArrayList
            CurrentValue=LackArray[i]
            for tube in range(i+1,ArrayList.__len__()-count+2):
                TotalValue=CurrentValue
                Process=str(i)
                newArray={}
                for c in range(0,count-1):
                    index=tube+c
                    TotalValue=TotalValue+LackArray[index]
                    Process=Process+"+"+str(index)
    
                newArray[str(TotalValue)]=Process
                newArrayList.append(newArray)
        return newArrayList
    
    
    def generateAll(ArrayList):
        All=[]
        for i in range(2,ArrayList.__len__()+1):
            All=All+combine(ArrayList,i)
    
        return All
    
    def generateNewLackArray(ArrayList,count,TargetArray):
        ArrayList=list(ArrayList)
        newArrayList=[]
        matchResult=[]
        # i=0
        for i in range(0,ArrayList.__len__()-count+1):
            LackArray = ArrayList
            if ArrayList[i]=="N":
                continue
    
            CurrentValue=LackArray[i]
            for tube in range(i+1,ArrayList.__len__()-count+2):
                TotalValue=CurrentValue
                Process=str(i+1)
                newArray={}
                for c in range(0,count-1):
    
                    index=tube+c
                    if LackArray[index]=="N":
                        continue
    
                    TotalValue=TotalValue+LackArray[index]
                    Process=Process+"+"+str(index+1)
    
                newArray[str(TotalValue)]=Process
                if TotalValue in TargetArray:
    
                   result={}
                   result[Process]=list(TargetArray).index(TotalValue)+1
                   matchResult.append(result)
                   TargetArray[(list(TargetArray).index(TotalValue))]="N"
    
                   popArray=Process.split("+")
                   popArray.reverse()
                   for p in popArray:
                       ArrayList[(int(p)-1)]="N"
                   break
    
    
            # i+=1
    
    
        print(ArrayList)
        print(TargetArray)
        return matchResult,ArrayList,TargetArray
    
    
    def getArrayList(path):
        if not os.path.exists(path):
            return []
        with open(path,"r") as reader:
            ArrayList=reader.read().split("
    ")
            for i in range(0,ArrayList.__len__()):
                if ArrayList[i]=="":
                    ArrayList.pop(i)
            return ArrayList
    
    def moretimes(ArrayList,TargetList):
        ArrayList=list(ArrayList)
        TargetList=list(TargetList)
        Result=[]
        for count in range(2,ArrayList.__len__()-1):
            matchResult,ArrayList,TargetList= generateNewLackArray(ArrayList,count,TargetList)
            Result=Result+matchResult
        return Result
    
    
    
    
    if __name__=="__main__":
        a=[8,1,2,3,4,1,2,3,4,1,2,1,1,1,1,1,1,1]
        b=[1,3,7,6,7]
        print(moretimes(a,b))
        # print(getArrayList("1.txt"))
        # b=[6,10,15]
    
        # print(generateAll(a))
        # print(generateNewLackArray(a,3,b))
  • 相关阅读:
    《我是一只IT小小鸟》
    &&、||、?:、,四个运算符的求值顺序
    C Traps and Pitfalls 练习4.2
    “检测到LoaderLock”的解决办法
    VS中代码对齐等快捷键
    贪心 Greedy Algorithms
    这些最基本的程序优化方法你用过吗?
    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]
    [原创]让对话框的控件支持tooltips
    Debug 运行正常但 Release 失败的问题,Debug 和 Release 编译方式的本质区别
  • 原文地址:https://www.cnblogs.com/Zeech-Lee/p/11695820.html
Copyright © 2020-2023  润新知