序列长度
题目描述
有N个正整数组成的一个序列
给定一个整数sum
求长度最长的的连续子序列使他们的和等于sum
返回次子序列的长度
如果没有满足要求的序列 返回-1
输入描述
两行输入
第一行为,
拼接的正整数序列
第二行为一个整数sum
输出描述
满足条件的子序列的长度
如果没有满足要求的序列 返回-1
示例一
输入
1,2,3,4,2
6
输出
3
说明
1,2,3
和4,2
两个序列均能满足要求
所以最长的连续序列为1,2,3
,因此结果为3
示例二
输入
1,2,3,4,2
20
输出
-1
# !E:\pythonScript\venv python3
# -*- coding: utf-8 -*-
"""
Date: 2023/4/4
Author: kang
ep:
1,2,3,4,2
6
"""
order = list(map(int, input().split(",")))
sum1 = int(input())
lis = []
for i in range(len(order)):
k = 0
k = k + order[i]
for j in range(i + 1, len(order) + 1):
if k == sum1:
lis.append(order[i:j])
break
elif k < sum1 and j < len(order):
k = k + order[j]
if len(lis) < 1:
print(-1)
else:
k = max(lis, key=len)
for i in k:
print(i, end=" ")