Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

448
Vistas
¿Cómo eliminar caracteres duplicados en una cadena?

Tengo este problema y simplemente no puedo hacerlo bien. Tengo que eliminar los caracteres duplicados de una cadena.

 phrase = "oo rarato roeroeu aa rouroupa dodo rerei dde romroma"

El resultado debe ser: "O rato roeu a roupa do rei de roma"

Intenté cosas como:

 def remove_duplicates(value): var="" for i in value: if i in value: if i in var: pass else: var=var+i return var print(remove_duplicates(entrada))

Pero aún no está ahí...

¿Algún consejo que me guíe aquí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

De su ejemplo, parece que desea eliminar SECUENCIAS REPETIDAS de caracteres, no caracteres duplicados en toda la cadena. Así que esto es lo que estoy resolviendo aquí.

Puede usar una expresión regular... no estoy seguro de cuán terriblemente ineficiente es, pero funciona.

 >>> import re >>> phrase = str("oo rarato roeroeu aa rouroupa dodo rerei dde romroma") >>> re.sub(r'(.+?)\1+', r'\1', phrase) 'o rato roeu a roupa do rei de roma'

Cómo procede esta sustitución a lo largo de la cadena:

 oo -> o " " -> " " rara -> ra to -> to " "-> " " roeroe -> roe

etc..

Editar: funciona para la otra cadena de ejemplo que no debe modificarse:

 >>> phrase = str("Barbara Bebe com Bernardo") >>> re.sub(r'(.+?)\1+', r'\1', phrase) 'Barbara Bebe com Bernardo'
over 4 years ago · Santiago Trujillo Denunciar

0

Lo que puede hacer es formar un conjunto a partir de la cadena y luego ordenar las letras restantes de acuerdo con su orden original.

 def remove_duplicates(word): unique_letters = set(word) sorted_letters = sorted(unique_letters, key=word.index) # this will give you a list return ''.join(sorted_letters) words = phrase.split(' ') new_phrase = ' '.join(remove_duplicates(word) for word in words)
over 4 years ago · Santiago Trujillo Denunciar

0

En realidad, agrego un espacio al final del space . Después de eso esto está funcionando

código

 phrase =("oo rarato roeroeu aa rouroupa dodo rerei dde romroma ") print(phrase) ch="" ali=[] for i in phrase: if i ==" ": print(ch) ch="" if i not in ch: ch=ch+i

Producción

 o rato roeu a roupa do rei de roma
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda