Dans ce tutoriel, nous allons écrire un programme Python pour trouver la différence entre les deux chaînes données. Ce problème peut être posé lors de l'entretien. Comprenons l'énoncé du problème et nous aborderons ensuite la solution.
Énoncé du problème -
Il y a deux chaînes données s et t. La chaîne t est générée par un brassage aléatoire de chaînes, puis un caractère supplémentaire est ajouté à n'importe quelle position aléatoire. Nous devons écrire un programme Python qui renvoie la lettre ajoutée à t.
Exemple -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Exemple -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Contraintes:
Les contraintes suivantes doivent être respectées -
- 0<= s.length <='1000</li'>
- t.longueur == s.longueur + 1
- s et t sont constitués de lettres anglaises minuscules. =>
Programme Python
Comprenons le programme Python suivant.
Exemple -
class Solution(object): def findTheDifference(self, s, t): ls_s = [s[i] for i in range(len(s))] ls_t = [t[i] for i in range(len(t))] for elem in ls_s: ls_t.remove(elem) return(ls_t[0]) obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Sortir:
'e'
Explication -
Dans le code ci-dessus, nous avons défini la fonction findThedifference() qui prend deux chaînes comme arguments. Nous avons utilisé la compréhension de liste pour convertir les chaînes en liste. Maintenant, nous itérons ls_s liste, choisissez un seul élément et supprimez cet élément de la deuxième liste ls_t. Si tous les éléments sont supprimés du deuxième élément, cela signifie que les deux chaînes données sont identiques, sinon renvoie le premier élément de la deuxième liste.
Solution-2
Voyons une autre solution au problème.
class Solution: def findTheDifference(self, s: str, t: str) -> str: #sort both the strings s_list = sorted(s) t_list = sorted(t) s_list.append(0) #to make the length equal else we will get list index out of bounds (1 extra char in string2) for i in range(len(t_list)): if s_list[i] != t_list[i]: #if character at i not same for both the strings, we get our answer return t_list[i] obj = Solution() s = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Sortir:
sous-chaîne en Java
e
Explication -
Dans ce tutoriel, nous avons utilisé le trié() méthode, qui convertit la chaîne en une liste de caractères de manière triée. Nous avons créé les deux listes de chaînes et ajouté un élément supplémentaire égal à 0 pour rendre la longueur égale ; sinon, nous obtiendrons l'index de la liste hors des limites. Maintenant, nous avons parcouru la t_list et vérifié si le s_liste l'élément n'est pas égal à t_list ; si la condition est remplie, il renvoie cet élément.