Python实现,输入字符串s输出s中包含所有整数的最小和,说明:1字符串s只包含a~z,A~Z,+

Python实现,输入字符串s输出s中包含所有整数的最小和,说明:1字符串s只包含a~z,A~Z,+,-,2合法的整数包括正整数,一个或者多个0-9组成,如:0,2,3,002,102;2负整数,负号开头,数字部分由一个或者多个0-9组成,如-2,-012,-23,-00023

你的输入是什么那?‘abcd-12e123+123-134’这样的吗?取出其中的整数,然后求和?什么叫所有整数的最小和,是取整数求和,哪里的最小和?

'''
思路:
1、若存在负整数子串,则负整数子串越小,和越小
2、正整数一定要全部作为个位数进行相加
大致步骤:
1、遍历输入的字符串,判断当前字符串是否为‘-’(负号)
2、若当前字符为‘-’(负号),判断当前字符后面紧跟着的字符是否为数字。若为数字,则当作负整数,且负整数越小,所有整数之和越小。将负整数作为整体存储下来,并在原输入的字符串中删除保存的负整数子串。
3、遍历已删除负整数子串的字符串,若当前字符为数字,则将当前字符作为一个正整数
注意:
这种形式的组合也算作合法整数:-2,-012,-23,-00023
'''
仅供参考,若有错误,烦请指出。
python写法:
def minSum(s):
is_symbol = s.find('-')
#print(is_symbol)
num_list = []
for i in range(1,len(s)-1):
tmp = ''
if s[i] == '-' :
for j in range(i+1,len(s)):
if s[j].isdigit():
tmp += s[j]
else:
break
i = j
if tmp != '' :
num_list.append('-' + tmp)
#print(num_list)
for i in num_list :
s = s.replace(str(i),'')
print(s)
for i in s :
if i.isdigit() :
num_list.append(int(i))
print(num_list)
print(sum(int(i) for i in num_list))

#minSum('bb010-00+23+4+aa')
minSum(input())

有无大佬做过这道题呢