📜  Python|连续字符的最小和

📅  最后修改于: 2022-05-13 01:55:40.369000             🧑  作者: Mango

Python|连续字符的最小和

有时,我们可能会遇到一个问题,即我们需要从列表中获取 2 个数字的最小总和,但有一个限制是让数字连续。在竞争性编程中可能会出现此类问题。让我们讨论一些可以解决这个问题的方法。

方法 #1:使用min() + zip() + 列表理解
这个问题可以通过上面三个函数的组合来解决,其中 min函数可以用来获取最小值, zip 和 list comprehension 完成将逻辑扩展到整个列表的任务。

# Python3 code to demonstrate
# Minimum Sum of Consecutive Characters
# using zip() + min() + list comprehension
  
# initializing string 
test_string = '6543452345456987653234'
  
# printing original string 
print("The original string : " + str(test_string))
  
# using zip() + min() + list comprehension
# Minimum Sum of Consecutive Characters
test_string = list(test_string)
res = min(int(a) + int(b) for a, b in zip(test_string, test_string[1:]))
  
# print result
print("The minimum consecutive sum is : " + str(res))
输出 :
The original string : 6543452345456987653234
The minimum consecutive sum is : 5

方法#2:使用min() + map() + 运算符.add
上述问题也可以使用另一种功能组合来解决。在这种组合中,map 函数执行将逻辑扩展到整个列表的任务,而 add运算符用于执行乘法。

# Python3 code to demonstrate
# Minimum Sum of Consecutive Characters
# using min() + map() + operator.add
from operator import add
  
# initializing string 
test_string = '6543452345456987653234'
  
# printing original string 
print("The original string : " + str(test_string))
  
# using min() + map() + operator.add
# Minimum Sum of Consecutive Characters
res = min(map(add, map(int, test_string), map(int, test_string[1:])))
  
# print result
print("The minimum consecutive sum is : " + str(res))
输出 :
The original string : 6543452345456987653234
The minimum consecutive sum is : 5