# 编程之家 (jb51.cc)
'''寻找最大连续子串和'''
def find_max_sub_sum(data):
if not data:
return None
sub = data[0]
submax = data[0]
for i in range(1,len(data)):
sub = max(sub+data[i],data[i])
submax = max(submax,sub)
return submax
'''寻找最长的数字串'''
def find_longest_num(s):
if not s:
return ''
i = 0
maxnumLen = 0
while i < len(s):
if s[i].isdigit():
startNum = i
numLen = 0
while i < len(s) and s[i].isdigit():
numLen += 1
i += 1
'''比较长度是否超过前面保存的最大长度,这里如果有相同长度的子串,则取后面的,如果要取前面的,则maxnumLen < numLen即可'''
if numLen and maxnumLen <= numLen:
maxnumLen = numLen
sub = '' #每次sub需要清空
for j in range(startNum,startNum+numLen):
sub += s[j]
i += 1
return sub,maxnumLen
if __name__ == '__main__':
str = 'abcd12345ed123ss123456789'
b = [-2,-1,3,-6,20,7,-34]
print(find_longest_num(str)) #('123456789',9)
print(find_max_sub_sum(b)) #27
# End 编程之家 jb51.cc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。