题目
输入字符串s,输出s中包含所有整数的最小和。
说明:
字符串s,只包含 a-z A-Z ± ;
合法的整数包括
1) 正整数 一个或者多个0-9组成,如 0 2 3 002 102
2)负整数 负号 – 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023
输入描述
包含数字的字符串
输出描述
所有整数的最小和
用例
输入
bb1234aa
输出
10
解题思路
遍历输入字符串的字符数组,检查每个字符是否是数字字符。如果是数字字符,则将其添加到总和中,否则检查是否是负号,如果是,则将后续数字字符转换为负数并从总和中减去。
代码
# -*- coding: utf-8 -*-
def calculate_min_integer_sum(input_str):
is_negative = False
negative_digits = []
total_sum = 0
for char in input_str:
if char.isdigit():
if is_negative:
negative_digits.append(int(char))
else:
total_sum += int(char)
else:
if is_negative and negative_digits:
negative_value = int(''.join(map(str, negative_digits)))
total_sum -= negative_value
negative_digits.clear()
is_negative = char == '-'
if negative_digits:
negative_value = int(''.join(map(str, negative_digits)))
total_sum -= negative_value
return total_sum
def main():
input_str = input()
result = calculate_min_integer_sum(input_str)
print(result)
if __name__ == "__main__":
main()

该博客介绍了如何解决华为在线测评(OD)中的一道Python题目,要求从输入字符串中找出所有整数并计算它们的最小和。解题策略涉及遍历字符串,识别正负整数,并累加到总和中。
386

被折叠的 条评论
为什么被折叠?



