Cette fonction devrait être de séparer la chaîne par '-', mais cela ne fonctionne que pour le cas où la chaîne a deux mêmes lettres, donc quand la chaîne a plus de mêmes lettres - cela ne fonctionne pas

def seperating(s: string): 
    for i in range(len(s)):
        if s[i] == s[i + 1]:
            return s[:i + 1] + '-' + s[i + 1:]


if __name__ == '__main__':
    print(seperating("   aa   "))  # - - a-a - -     it doesn't work
    print(seperating("Hello"))  # Hel-lo   it works
-2
pibo 3 nov. 2019 à 18:18

1 réponse

Vous revenez de la fonction après la première fois que vous rencontrez deux caractères égaux.Au lieu de renvoyer une valeur, enregistrez-la dans une nouvelle chaîne, par exemple:

def seperating(s: string):
    ret_string = ""
    for i in range(len(s) - 1):
        ret_string += s[i]
        if s[i] == s[i + 1]:
            ret_string += '-'
    ret_string += s[len(s) - 1]
    return ret_string
0
Vlad Keel 3 nov. 2019 à 15:29