Python :: Aufgabe #343 :: Lösung #1

2 Lösungen Lösungen öffentlich
#343

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ß
#1
vote_ok
von eisheiliger (3750 Punkte) - 17.04.2021 um 19:01 Uhr
Quellcode ausblenden Python-Code

"""
#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()


Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2109678

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.