es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo eliminar espacios en blanco redundantes sin usar funciones.

Necesito eliminar espacios en blanco redundantes de una cadena sin utilizar ninguna función como split(), strip(), etc. Tengo una cadena como “manzanas bananas naranja” y necesito “manzanas bananas naranja”. Hasta ahora estoy aquí:

string = " manzanas    bananas naranja "
result = ""
output = ""
i = 0
while i < len(string):
    result = ""
    while string[i] != " ":
        result += string[i]
        i += 1
    while string[i] == " ":
        i += 1
        if i >= len(string):
            break
    output += result + " "

print(output)

Pero ahora no puedo deshacerme de los espacios en ambos lados.

También intenté deshacerme de los espacios en blanco usando solo un ciclo, pero no puedo agregar un espacio en blanco entre las palabras.

Gracias de antemano por cualquier ayuda.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Aquí hay una posible solución para eliminar espacios en blanco redundantes de una cadena en Python:

    cadena = " manzanas   plátanos naranja  "
    
    # Elimina los espacios en blanco iniciales y finales (si los hay)
    while cadena and cadena[0] == ' ':
        cadena = cadena[1:]
    while cadena and cadena[-1] == ' ':
        cadena = cadena[:-1]
    
    # Elimina los espacios en blanco redundantes
    i, n = 0, len(cadena)
    while i < n:
        # Omite los caracteres que no son espacios en blanco
        while i < n and cadena[i] != ' ':
            i += 1
        # Elimina los espacios en blanco redundantes entre palabras
        j = i
        while j < n and cadena[j] == ' ':
            j += 1
        if j < n:
            cadena = cadena[:i] + ' ' + cadena[j:]
            n = len(cadena)
        i += 1
    
    print(cadena)  # Salida: "manzanas plátanos naranja"
    

    El primer bloque de código elimina cualquier espacio en blanco inicial o final de la cadena original utilizando un bucle while y el método de división de cadena.

    El segundo bloque de código itera sobre cada carácter de la cadena utilizando un índice entero. Omite los caracteres que no son espacios en blanco utilizando otro bucle while. Cuando encuentra un carácter de espacio en blanco, comprueba si hay algún otro carácter de espacio en blanco redundante que ocurra después hasta que se encuentre el siguiente carácter que no sea espacio en blanco. Si se encuentra alguno, lo elimina cortando la cadena y ajustando la longitud de la cadena.

    Tenga en cuenta que esta solución no utiliza ninguna función de cadena incorporada como split, strip, etc.

Comments are closed.