Zwei Zeichenketten zeichenweise vergleichen in Python

Vaibhav Vaibhav 22 Januar 2022
Zwei Zeichenketten zeichenweise vergleichen in Python

Python ist eine Allzwecksprache, die die Arbeit mit Daten vom Integer-Typ, String-Typ, Float-Typ, Double-Typ usw. mit seiner leicht verständlichen Syntax und robusten APIs, die im Hintergrund arbeiten, zu einer relativ nahtlosen Aufgabe macht.

Dieser Artikel wird über eine solche Aufgabe sprechen, die Zeichenketten beinhaltet. Und die Aufgabe besteht darin, zwei Strings Zeichen für Zeichen mit Python zu vergleichen.

Strings Zeichen für Zeichen in Python vergleichen

In Python können wir zwei Strings Zeichen für Zeichen vergleichen, indem wir entweder eine for-Schleife oder eine while-Schleife verwenden.

Da zwei Strings unterschiedliche Längen haben können, müssen wir darauf achten, dass wir beim Iterieren über die Strings zum Vergleich nur die kleinere Länge berücksichtigen. Zum Vergleich würden wir die Anzahl der gleichen Zeichen in beiden Strings zählen, die an den gleichen Indizes liegen.

Beachten Sie, dass dies nur eine Möglichkeit ist, zwei Zeichenketten zu vergleichen.

Man kann die Häufigkeit jedes in einer Zeichenkette vorhandenen Zeichens zum Vergleich zählen oder die Hamming-Distanz berechnen. Die Hamming-Distanz ist die Anzahl der Indizes, bei denen sich die Zeichen der Strings unterscheiden.

Der folgende Python-Code implementiert das, worüber wir oben gesprochen haben.

def compare_strings(a, b):
    if a is None or b is None:
        print("Number of Same Characters: 0")
        return

    size = min(len(a), len(b))  # Finding the minimum length
    count = 0  # A counter to keep track of same characters

    for i in range(size):
        if a[i] == b[i]:
            count += 1  # Updating the counter when characters are same at an index

    print("Number of Same Characters:", count)


compare_strings("homophones", "homonyms")
compare_strings("apple", "orange")
compare_strings("apple", "applepie")
compare_strings("pasta", "pizza")
compare_strings(None, None)
compare_strings(None, "valorant")
compare_strings("minecraft", None)

Ausgabe:

Number of Same Characters: 4
Number of Same Characters: 0
Number of Same Characters: 5
Number of Same Characters: 2
Number of Same Characters: 0
Number of Same Characters: 0
Number of Same Characters: 0

Die Zeitkomplexität des obigen Codes ist O(n), und die Raumkomplexität ist O(1), da wir nur die Anzahl und die minimale Länge speichern.

Der obige Code verwendet eine for-Schleife. Wie oben erwähnt, können wir auch eine while-Schleife verwenden, um die gleiche Funktionalität zu implementieren. Siehe den folgenden Code für dasselbe.

def compare_strings(a, b):
    if a is None or b is None:
        print("Number of Same Characters: 0")
        return

    size = min(len(a), len(b))  # Finding the minimum length
    count = 0  # A counter to keep track of same characters
    i = 0

    while i < size:
        if a[i] == b[i]:
            count += 1  # Updating the counter when characters are same at an index

        i += 1

    print("Number of Same Characters:", count)


compare_strings("homophones", "homonyms")
compare_strings("apple", "orange")
compare_strings("apple", "applepie")
compare_strings("pasta", "pizza")
compare_strings(None, None)
compare_strings(None, "valorant")
compare_strings("minecraft", None)

Ausgabe:

Number of Same Characters: 4
Number of Same Characters: 0
Number of Same Characters: 5
Number of Same Characters: 2
Number of Same Characters: 0
Number of Same Characters: 0
Number of Same Characters: 0

Die Zeitkomplexität des obigen Codes ist O(n) und die Raumkomplexität ist O(1), da wir nur die Anzahl und die minimale Länge speichern.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python String