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

2 Lösungen Lösungen öffentlich
#341

Längster Substring (Teilzeichenfolge)

Anfänger - Python von JKooP - 10.04.2021 um 18:51 Uhr
Gegeben ist ein beliebig langer String (Zeichenkette) bestehend aus Kleinbuchstaben.
Ziel soll es sein, den längsten Substring (Teilzeichenfolge) herauszufinden,
der aus einem Buchstaben gebildet wird und aus mindestens 2 Zeichen besteht.

Schreibe eine Methode/Funktion, die sowohl die Länge als auch den Substrings selbst auf dem Bildschirm ausgibt.

Beispiele:
s1 = abcde
Länge: 0
Substring: "" -> keine Lösung, da kein Substring mit der Länge > 1

s2 = abccdec
Länge: 2
Substring: "cc"

s3 = "bbdddccaaa"
Länge: 3
Substring: "aaa"

Aufgabe 1:
Sind mehrere Substrings gleich lang, soll ein beliebiger ausgewählt werden.

Aufgabe 2:
Sind mehrere Substrings gleich lang, soll der des ersten Vorkommens ausgegeben werden.
zu s3:
Substring: "ddd"

Viel Spaß
#1
vote_ok
von AlexGroeg (2010 Punkte) - 12.04.2021 um 12:53 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-

def längster_substring(s):
    m = s[0]
    längster = []
    for i in range(1,len(s)):
        if s[i] != m[0]:
            m = s[i]
        else:
            m += s[i]
            längster.append(m)         
    try:
        sub = max(längster)        
        print('Länge:', len(sub))
        print('Substring: "{}"\n'.format(sub))    
    except:
        print('Länge: 0')
        print('Substring: "" -> keine Lösung, da kein Substring mit der Länge > 1\n') 


beispiele = ['abcde', 'abccdec', 'bbdddccaaa']

for s in beispiele:
    print('s{} = {}'.format(beispiele.index(s)+1, s))
    längster_substring(s)

Kommentare:

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

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