Python :: Aufgabe #343
2 Lösungen

Längste aufsteigende Zahlenfolge im Array
Anfänger - Python
von JKooP
- 16.04.2021 um 18:05 Uhr
Gegeben ist ein Array bestehend aus aufsteigenden Integer-Zahlenfolgen,
die hin und wieder durch nicht in die Folge passende Zahlen unterbrochen werden.
Ziel soll es sein, die längste aufsteigende Zahlenfolge zu ermittelt.
Beispiel 1:
arr = {1, 3, 5, 4, 7, 8, 9, 10, 6, 2, 3, 4}
Lösung: 5 => {4, 7, 8, 9, 10}
Beispiel 2:
arr = {5, 5, 5, 5, 5}
Lösung: 1 => {5}
Schreibe eine Methode/Funktion, die als Ergebnis die Länge der längsten Zahlenfolge ausgibt.
Viel Spaß
die hin und wieder durch nicht in die Folge passende Zahlen unterbrochen werden.
Ziel soll es sein, die längste aufsteigende Zahlenfolge zu ermittelt.
Beispiel 1:
arr = {1, 3, 5, 4, 7, 8, 9, 10, 6, 2, 3, 4}
Lösung: 5 => {4, 7, 8, 9, 10}
Beispiel 2:
arr = {5, 5, 5, 5, 5}
Lösung: 1 => {5}
Schreibe eine Methode/Funktion, die als Ergebnis die Länge der längsten Zahlenfolge ausgibt.
Viel Spaß
Lösungen:

def ist_längste_aufsteigende_zahlenfolge(arr): zahlenfolge = [arr[0]] z = [] for i in range(1,len(arr)): if arr[i-1] == arr[i]-1: zahlenfolge.append(arr[i]) else: if len(zahlenfolge) > 1: z.append(zahlenfolge.copy()) zahlenfolge.clear() zahlenfolge.append(arr[i]) z.append(zahlenfolge.copy()) return max(z) beispiele = [[1, 3, 5, 4, 7, 8, 9, 10, 6, 2, 3, 4], [5, 5, 5, 5, 5]] for arr in beispiele: print(ist_längste_aufsteigende_zahlenfolge(arr))

""" #343: Längste aufsteigende Zahlenfolge im Array Schreibe eine Methode/Funktion, die als Ergebnis die Länge der längsten Zahlenfolge ausgibt. """ def prf_lzafo(arr): c_ind = 0 c_lae = 1 x_ind = 0 x_lae = 1 for i in range(0, len(arr) - 1): if arr[i] < arr[i + 1]: c_lae += 1 else: c_lae = 1 c_ind = i + 1 if c_lae > x_lae: x_lae = c_lae x_ind = c_ind print(x_lae, arr[x_ind: x_ind + x_lae]) def main(): ein1 = [1, 3, 5, 4, 7, 8, 9, 10, 6, 2, 3, 4] ein2 = [5, 5, 5, 5, 5] ein3 = [1, 2, 3, 4, 5, 6, 4, 7, 8, 9, 10, 6, 2, 3, 4] ein4 = [4, 1, 2] prf_lzafo(ein1) prf_lzafo(ein2) prf_lzafo(ein3) prf_lzafo(ein4) if __name__ == '__main__': main()