Längster Teilstring ohne sich wiederholende Zeichen in Python

Rana Hasnain Khan 15 Februar 2024
  1. Längster Teilstring ohne sich wiederholende Zeichen in Python
  2. Verwenden Sie eine While-Schleife, um den längsten Teilstring in Python zu erhalten
  3. Verwenden Sie eine For-Schleife und eine If-Else-Anweisung, um den längsten Teilstring in Python zu erhalten
Längster Teilstring ohne sich wiederholende Zeichen in Python

Wir werden vorstellen, wie man Teilzeichenfolgen in Python erstellt und wie man eine Teilzeichenfolge erstellen kann, ohne Zeichen mit Beispielen zu wiederholen.

Längster Teilstring ohne sich wiederholende Zeichen in Python

In diesem Tutorial werden wir etwas Einzigartiges lernen, das Ihr Wissen erweitern und Ihre Loops noch perfekter machen kann. Wir werden lernen, wie man Teilstrings aus einem String macht, ohne Zeichen zu wiederholen.

Der Teilstring bedeutet, dass, wenn wir einen String haben und ihn in mehrere kleine Teile zerlegen, diese als Teilstrings dieses bestimmten Strings bezeichnet werden. Die längste Teilstring-Methode ist sehr hilfreich, wenn wir den längsten Teilstring erhalten möchten, der nicht dieselben Alphabete wiederholt.

Bei dieser Methode verwenden wir eine Schleife, die die gesamte Zeichenfolge durchläuft, jedes Element einzeln überprüft und die nicht wiederholte Teilzeichenfolge der ursprünglichen Zeichenfolge liefert.

In der Python-Programmierung gibt es viele Methoden, um den längsten Teilstring zu erhalten. Diese Methoden sind sehr einfach und hilfreich; wir werden sie im Detail besprechen.

Verwenden Sie eine While-Schleife, um den längsten Teilstring in Python zu erhalten

Wir erstellen eine Klasse GetLongestSubstring, die object als Parameter in dieser Methode verwendet. Wir werden eine Funktion namens Length definieren, die zwei Parameter innerhalb dieser Klasse akzeptiert.

Wir werden die while-Schleife durchlaufen, bis wir den längsten Teilstring des gegebenen Strings gefunden haben.

# python
class GetLongestSubstring(object):
    def Length(self, x):
        a = 0
        b = 0
        c = {}
        sol = 0
        while b < len(x):
            if x[b] not in c or a > c[x[b]]:
                sol = max(sol, (b - a + 1))
                c[x[b]] = b
            else:
                a = c[x[b]] + 1
                sol = max(sol, (b - a + 1))
                b -= 1
            b += 1
        return sol


obj = GetLongestSubstring()
print(obj.Length("ABCDEFGABCGHIJKLMNO"))

Ausgang:

Längster Teilstring mit While-Schleife in Python

Wie Sie im obigen Beispiel sehen können, hat der längste mögliche Teilstring eine Länge von 12, genau wie der Teilstring ABCGHIJKLMNO des Originalstrings.

Verwenden Sie eine For-Schleife und eine If-Else-Anweisung, um den längsten Teilstring in Python zu erhalten

Wir werden versuchen, dasselbe Szenario mit der for-Schleife zu erreichen. Zuerst definieren wir die Funktion GetLongestSubstring wie unten gezeigt.

Diese Funktion konvertiert die ursprüngliche Zeichenfolge in mehrere Teilzeichenfolgen und prüft, ob die Teilzeichenfolge eindeutig ist oder nicht. Wie unten gezeigt, gibt diese Funktion die längste Teilzeichenfolge mit ihrer Länge zurück.

# python
def GetLongestSubstring(x):
    if len(set(x)) == len(x):
        return len(x)
    Substring = ""
    StrLen = 1
    for a in x:
        if a not in Substring:
            Substring = Substring + a
            StrLen = max(StrLen, len(Substring))
        else:
            Substring = Substring.split(a)[1] + a
    print(Substring)
    return StrLen


print(GetLongestSubstring("ABCDEFGABCGHIJKLMNO"))

Ausgang:

längster Teilstring mit for-Schleife in Python

Wie Sie der obigen Lösung entnehmen können, können wir mit der for-Schleife mit der if-else-Anweisung ganz einfach den längsten Teilstring aus einem String erhalten.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

Verwandter Artikel - Python String