Topic de Alcorak9 :

Un jean-python pour m'aider ?

  • 1
je prépare mes cours pour l'année pro et l'année dernière on avait un exo que j'avais pas réussi a faire:
donc en gros je dois faire un programme qui transforme:
"bbbooonnnjjjooouuurrr" -> "bonjour"
et je sais pas trop comment m'y prendre si vous avez des pistes !
PS: oui je débute
J'ai rien compris à ton exo

Boucle où tu compares un indice à son suivant, ternaire sur l'égalité et tu l'ajoutes dans la string finale qu'en cas de différent ?

Mais ça réglerait pas le souci pour les mots a double consonne genre :(

Le 19 août 2021 à 23:47:04 :
J'ai rien compris à ton exo

en gros j'ai un texte où toutes les lettre sont en triples et je dois faire revenir le texte en normal comme dans l'exemple que j'ai dit

Salut, je peux te proposer une réponse:

def single(string):
    return "".join([string[i] for i in range(len(string)) if not(i%3)])
In [10]: single("bbbooonnnjjjooouuurrr")
Out[10]: 'bonjour'

C'est de la bruteforce mais vu que ton mot en entrée a toujours les lettres en 3 fois ça marche.

str = "bbbjj..."
while any(str.count(c)>1 for c in str):
for c in str:
if str.count(c) > 1:
str = str.replace(c*2, c)
break

En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

def next_repeat(str):
last = str[0]
for pos,char in enumerate(str):
if last == char: return pos-1
last = char
return -1

def del_repeat(str):
while (pos:=next_repeat(str)) != -1:
del str[pos]

Le 30 août 2021 à 00:27:12 :
def next_repeat(str):
last = str[0]
for pos,char in enumerate(str):
if last == char: return pos-1
last = char
return -1

def del_repeat(str):
while (pos:=next_repeat(str)) != -1:
del str[pos]

et ça tu peut le faite dans toutes les langues

Le 30 août 2021 à 00:25:51 :
En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

Marche pas si une lettre se répète dans le mot de base

Le 30 août 2021 à 00:27:51 :

Le 30 août 2021 à 00:25:51 :
En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

Marche pas si une lettre se répète dans le mot de base

Ah oui effectivement

Le 30 août 2021 à 00:29:41 :

Le 30 août 2021 à 00:27:51 :

Le 30 août 2021 à 00:25:51 :
En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

Marche pas si une lettre se répète dans le mot de base

Ah oui effectivement

J'étais parti sur le même principe avec un dict mais quand j'ai vu que ça me donnait bonjur et pas bonjour j'ai abandonné :rire:

Le 30 août 2021 à 00:27:51 :

Le 30 août 2021 à 00:25:51 :
En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

Marche pas si une lettre se répète dans le mot de base

Et le tien marche pas si une lettre se répète plus de 3 fois, le problème est sous spécifié on peut pas y faire grand chose

Le 30 août 2021 à 00:31:12 :

Le 30 août 2021 à 00:27:51 :

Le 30 août 2021 à 00:25:51 :
En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

Marche pas si une lettre se répète dans le mot de base

Et le tien marche pas si une lettre se répète plus de 3 fois, le problème est sous spécifié on peut pas y faire grand chose

L'op a spécifié que les lettres étaient toujours en triple

Le 30 août 2021 à 00:32:34 :

Le 30 août 2021 à 00:31:12 :

Le 30 août 2021 à 00:27:51 :

Le 30 août 2021 à 00:25:51 :
En gros un programme qui supprime les doublons ?

Tu utilises la fonction list() qui transforme ta string en list

Puis tu utilises set() qui rend les données d'une list unique

puis tu utilises join() qui te redonne une string

ça prend 3 lignes

Marche pas si une lettre se répète dans le mot de base

Et le tien marche pas si une lettre se répète plus de 3 fois, le problème est sous spécifié on peut pas y faire grand chose

L'op a spécifié que les lettres étaient toujours en triple

exa exa j'avais pas lu si loin

def remove_duplicates(word):
    new_word = ""
    for letter in word:
        if len(new_word) == 0:
            new_word += letter
        elif letter != new_word[-1]:
            new_word += letter
    return new_word

remove_duplicates("bbbbbbbooooonjjjooouuurrr  lllleeesssssss       aaaaaammmmiiiissss   !!!!")

Retourne :

'bonjour les amis !'
  • 1

Données du topic

Auteur
Alcorak9
Date de création
19 août 2021 à 23:40:23
Nb. messages archivés
18
Nb. messages JVC
18
En ligne sur JvArchive 347