Python | Diferencia máxima en la string

A veces, podemos tener un problema en el que necesitamos obtener la diferencia máxima de 2 números de Strings pero con la restricción de tener los números en sucesiones. Este tipo de problema puede ocurrir durante la programación competitiva. Analicemos ciertas formas en que se puede resolver este problema.

Método n.º 1: Uso max() + zip()de la comprensión de la lista +
Este problema se puede resolver mediante la combinación de las tres funciones anteriores en las que se puede usar la función max para obtener el valor máximo, zip y la comprensión de la lista haciendo la tarea de extender la lógica a toda la lista.

# Python3 code to demonstrate
# Maximum Difference in String
# using zip() + max() + list comprehension
  
# initializing string 
test_string = '6543452345456987653234'
  
# printing original string 
print("The original string : " + str(test_string))
  
# using zip() + max() + list comprehension
# Maximum Difference in String
test_string = list(test_string)
res = max(abs(int(a) - int(b)) for a, b in zip(test_string, test_string[1:]))
  
# print result
print("The maximum consecutive difference is : " + str(res))
Producción :

The original string : 6543452345456987653234
The maximum consecutive difference is : 3

Método #2: Usar max() + map() + operator.sub
El problema anterior también se puede resolver usando otra combinación de funciones. En esta combinación, las funciones de mapa realizan la tarea de extender la lógica a toda la lista y el suboperador se usa para realizar la diferencia.

# Python3 code to demonstrate
# Maximum Difference in String
# using max() + map() + operator.sub
from operator import sub
  
# initializing string 
test_string = '6543452345456987653234'
  
# printing original string 
print("The original string : " + str(test_string))
  
# using max() + map() + operator.sub
# Maximum Difference in String
res = max(map(sub, map(int, test_string), map(int, test_string[1:])))
  
# print result
print("The maximum consecutive difference is : " + str(res))
Producción :

The original string : 6543452345456987653234
The maximum consecutive difference is : 3

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *