Manchmal haben wir möglicherweise ein Problem, bei dem wir die maximale Differenz von 2 Zahlen aus Strings ermitteln müssen, jedoch mit der Einschränkung, dass die Zahlen in Abfolgen vorliegen. Diese Art von Problem kann bei der Konkurrenzprogrammierung auftreten. Lassen Sie uns bestimmte Möglichkeiten diskutieren, wie dieses Problem gelöst werden kann.

Methode 1: Verwenden des max() + zip()+ Listenverständnisses
Dieses Problem kann mithilfe der Kombination der drei oben genannten Funktionen gelöst werden, bei denen die Max-Funktion verwendet werden kann, um den Maximalwert, das Zip- und das Listenverständnis zu ermitteln und die Logik auf die gesamte Liste auszudehnen.

  
test_string = '6543452345456987653234'
  
print("The original string : " + str(test_string)) 
  
test_string = list(test_string) 
res = max(abs(int(a) - int(b)) for a, b in zip(test_string, test_string[1:])) 
  
print("The maximum consecutive difference is : " + str(res)) 
Ausgabe :
Die ursprüngliche Zeichenfolge: 6543452345456987653234
Die maximale Differenz in Folge beträgt: 3

 

Methode 2: Verwenden von max() + map() + operator.sub
Das obige Problem kann auch mit einer weiteren Funktionskombination gelöst werden. In dieser Kombination führen Kartenfunktionen die Aufgabe aus, die Logik auf die gesamte Liste zu erweitern, und der Unteroperator wird verwendet, um die Differenz auszuführen.



from operator import sub 
  
test_string = '6543452345456987653234'
  
print("The original string : " + str(test_string)) 
  
res = max(map(sub, map(int, test_string), map(int, test_string[1:]))) 
  
print("The maximum consecutive difference is : " + str(res)) 
Ausgabe :
Die ursprüngliche Zeichenfolge: 6543452345456987653234
Die maximale Differenz in Folge beträgt: 3