J'ai eu des problèmes avec cette simple question de hackerrank. Mon code fonctionne dans le compilateur mais le test hackerrank échoue à 6 cas de test. L'un d'entre eux est correct (je n'ai pas payé de prime). Y a-t-il quelque chose qui ne va pas ici ?
Prompt : Steve a une chaîne de caractères minuscules dans l'intervalle ascii['a'..'z']. Il souhaite réduire la chaîne à sa plus petite longueur en effectuant une série d'opérations au cours desquelles il sélectionne une paire de lettres minuscules adjacentes qui correspondent, puis il les supprime. Par exemple, la chaîne aab peut être réduite à b en une seule opération.
La tâche de Steve consiste à supprimer autant de caractères que possible à l'aide de cette méthode et à imprimer la chaîne de caractères obtenue. Si la chaîne finale est vide, il faut imprimer Chaîne vide
Ex.
aaabccddd → abccddd → abddd → abd
baab → bb → Chaîne vide
Voici mon code :
def super_reduced_string(s):
count_dict = {}
for i in s:
if (i in count_dict.keys()):
count_dict[i] += 1
else:
count_dict[i] = 1
new_string = ''
for char in count_dict.keys():
if (count_dict[char] % 2 == 1):
new_string += char
if (new_string is ''):
return 'Empty String'
else:
return new_string
Voici un exemple de sortie pour laquelle cela ne fonctionne pas.
print(super_reduced_string('abab'))
Il produit 'Empty String'
mais devrait produire 'abab'
.