zoukankan      html  css  js  c++  java
  • 寻找最大连续子串和以及寻找最长数字串

    '''寻找最大连续子串和'''
    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
    

      

  • 相关阅读:
    python播放音频文件
    安装pyaudio
    给 python工程 打包并上传 PyPI (The Python Package Index)
    python怎么import自己写的包
    pip源使用国内镜像
    Git和GitHub
    nginx的日志轮转
    ab接口压力测试工具
    nginx 性能优化
    https协议
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8021656.html
Copyright © 2011-2022 走看看