题目内容:
我们希望计算一个股票最长的连续上涨的天数,也即,给定一个未经排序的字符串,找到最长且连续递增的子序列,并返回该序列的长度。
连续递增的子序列可以由两个下标l和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。
约定:如果数组全局单调不增,那么最大长度应该是1
输入格式:
按提示用input()函数输入,输入的是字符串,其中数字之间用逗号分隔。
(你应该需要将这个字符串先转换成数值型的列表)
输出格式:
整数
输入样例:
1,2,3,5,5,7
输出样例:
4
(解释:1,2,3,5最长递增,长度为4)
解决思路:
寻找最长增长序列,定义max,如果一直涨则一直加1,碰到非递增则置max=1,并定义一个a来保存本次递增长度和上次递增长度的最大值,利用max函数。
def longestIncreasingSeq(num_string):
lst=list(num_string)
mlen=1
a=1
# print(len(lst)-1)
for i in range(0,len(lst)-1):
if int(lst[i+1])>int(lst[i]):
mlen=mlen+1
else:
a=max(a,mlen)
mlen=1
return max(a,mlen)
print(longestIncreasingSeq(eval(input())))