Comparer deux chaînes caractère par caractère en Python
Python est un langage à usage général qui permet de travailler avec des données de type entier, de type chaîne, de type flottant, de type double, etc., une tâche relativement transparente avec sa syntaxe facile à comprendre et ses API robustes fonctionnant en coulisses.
Cet article parlera d’une telle tâche qui implique des chaînes. Et la tâche consiste à comparer deux chaînes, caractère par caractère, en utilisant Python.
Comparer les chaînes caractère par caractère en Python
En Python, nous pouvons comparer deux chaînes, caractère par caractère, en utilisant soit une boucle for
soit une boucle while
.
Étant donné que deux chaînes peuvent avoir des longueurs différentes, nous devons nous assurer de ne considérer que la plus petite longueur pour itérer sur les chaînes à des fins de comparaison. À titre de comparaison, nous comptons le nombre des mêmes caractères dans les deux chaînes qui se trouvent aux mêmes index.
Notez qu’il ne s’agit que d’une façon de comparer deux chaînes.
On peut compter la fréquence de chaque caractère présent dans une chaîne pour comparaison ou calculer la distance de Hamming. La distance de Hamming est le nombre d’index où les caractères des chaînes sont différents.
Le code Python suivant implémente ce dont nous avons parlé ci-dessus.
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)
Production :
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
La complexité temporelle du code ci-dessus est O(n)
, et la complexité spatiale est O(1)
puisque nous ne stockons que le nombre et la longueur minimale.
Le code ci-dessus utilise une boucle for
. Comme mentionné ci-dessus, nous pouvons également utiliser une boucle while
pour implémenter la même fonctionnalité. Reportez-vous au code suivant pour la même chose.
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)
Production :
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
La complexité temporelle du code ci-dessus est O(n)
, et la complexité spatiale est O(1)
, puisque nous ne stockons que le nombre et la longueur minimale.
Article connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Convertir une chaîne en nom de variable en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python
- Comment convertir une chaîne de caractères en datetime en Python