Un jean-python pour m'aider ?
Alcorak9
2021-08-19 23:40:23
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
waist_of_time
2021-08-19 23:48:46
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
Alcorak9
2021-08-19 23:51:18
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
backbreakers1
2021-08-30 00:19:30
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.
okhe2000
2021-08-30 00:23:20
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
abatou
2021-08-30 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
okhe2000
2021-08-30 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]
okhe2000
2021-08-30 00:27:49
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
backbreakers1
2021-08-30 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
kabatso
2021-08-30 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
backbreakers1
2021-08-30 00:30:42
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é
Marmaronette
2021-08-30 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
backbreakers1
2021-08-30 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
Marmaronette
2021-08-30 00:39:31
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
Azerban
2021-08-30 14:39:37
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 !'