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("\n")
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))

Automatches的更多相关文章

随机推荐

  1. 【Linux】【四】linux 删除文件

      1.rm -f *     删除当前目录下的文件  application/file/test/tools/logs/   #最经典的方法,删除当前目录下的所有类型的文件 2.rm -rf /ro ...

  2. Java ——关键字 数据类型 变量 常量

    本节重点思维导图 Java程序结构 public class 类名 { public static void main(String[] args){ //……语句 } } 一门语言是由以下各种元素组 ...

  3. 人工智能01 刺激响应agent

    刺激响应agent 不具有内部状态而仅对其所处环境的即刻刺激有所反应的机器称为刺激响应(SR)agent 感知和动作 一机器人可以感知出周围8个单元是否空缺.这些传感器输入用二进制变量s1,s2 ,s ...

  4. Asp.NetCore应用--部署到 ubuntu 进行托管

    准备过程 netcore linux发布包(本人是通过vs2017发布) ubuntu 16.0.4虚机 进行托管 ubuntu  netcore发布文件路径 服务器设置为将对 http://< ...

  5. Linux基础命令---间歇执行命令---watch

    [watch] watch指令可以间歇性的执行程序,将输出结果以全屏的方式显示,默认是2s执行一次. watch指令下发后,将会一直被执行,直到被中断. [语法] watch \ [-d h v t] ...

  6. PTA(Advanced Level)1011.World Cup Betting

    With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...

  7. HDU 2044 DP (fibonacci)

    HDU 2044 https://vjudge.net/problem/HDU-2044 每一个只有可能由它左面的以及左上的状态变过来,也就是F(i-1)和F(i-2) F(1) = 1 F(2) = ...

  8. PHP 补零操作

    str_pad(string,length,pad_string,pad_type)//参数 描述string //必需.规定要填充的字符串.length //必需.规定新的字符串长度.如果该值小于字 ...

  9. redis的string和list

  10. springboot2整合zookeeper集成curator

    步骤: 1- pom.xml <dependency> <groupId>org.apache.curator</groupId> <artifactId&g ...