• Skip to main content
  • Skip to footer

GO ALGORITHMS

Soluciones de lógica con Golang

  • Fácil
  • Intermedio
  • Avanzado
  • Todos
  • GitHub

Invertir texto con Go en pocas lineas

Para invertir un texto en Go, debemos entender el funcionamiento de las cadenas de caracteres (string). En Go, una cadena de caracteres es una secuencia de bytes que representan caracteres Unicode. quiere decir que cuando trabajamos un caracter de un string es un caracter tipo byte.

package texto_test
 
import "testing"
 
func TestgirarTexto(t *testing.T) {
 tests := map[uint8]struct {
  texto  string
  textOk string
 }{
  1: {texto: "Primer texto", textOk: "otxet remirP"},
  2: {texto: "Soy un dev", textOk: "ved nu yoS"},
  3: {texto: "me gusta la pizza", textOk: "azzip al atsug em"},
  4: {texto: "Robert Grisemer", textOk: "remesirG treboR"},
 }
 
 for k, vTest := range tests {
  vResult, ok := girarTexto(vTest.texto)
 
  if vTest.textOk != vResult {
   t.Logf("Error test %v, esperaba %s y recibi %s", k, vTest.textOk, vResult)
   t.Fail()
  }
 
  if len(vTest.texto) != len(vResult) {
   t.Logf("Error test %v, tamaño de texto inicial %s final %s", k, len(vTest.texto), len(vResult))
   t.Fail()
  }
 }
}

Golang no tiene una funcción “textReverse” para invertir cambiar el orden de un string pero la podemos crear!

5 ejemplos prácticos

cuando recorres un string es como si tomara cada letra y la metiera en un slice por eso podemos acceder a ella, pero esta en formato byte y debemos convertirla de nuevo a texto “string(byte)”. En 4 ejemplos la funcción se llamara “textReverse”, si prefieres la puedes llamar “girarTexto” o el nombre que elijas.

GO CONVIERTE LOS STRINGS A SLICE PARA MEDIRLOS (LEN())

Ejemplos de cómo girar texto y devolver un string al revés con Go

Primer ejemplo

En este primer ejemplo creamos la lógica (algoritmo) dentro la función principal (main)

  1. Iniciamos un For condicional
    • inicialización: variable de control del bucle i con el valor y como valor el tamaño de la entrada menos 1 (len()-1)
    • Condición: mientras i sea mayor o igual a 0 (i >= 0;)
    • Post-ejecución: en cada iteración de i: en cada vuelta restamos 1 a i (i–)

Dtilizamos la función “reverse” para invertir una cadena de caracteres “Hola mundo”. La función toma como argumento una cadena de caracteres y utiliza un bucle “for” para invertir la secuencia de caracteres. Finalmente, la función devuelve la cadena invertida.

package main

import  "fmt"

func main() {
	texto := "bb aloh"
	var resultado string
	for i := len(texto) - 1; i >= 0; i-- {
		resultado += string(texto[i])
	}
	fmt.Println(resultado)
}

Segundo ejemplo

func textReverse(texto string) string {
	var resultado string
	for i := len(texto) - 1; i >= 0; i-- {
		resultado += string(texto[i])
	}
	return resultado
}

Tercer ejemplo | Invertir texto usando punteros y for range

func giraTexto(pointerText *string) {
	text := *pointerText
	result := ""
	for _, v := range text {
		result = string(v) + result
	}
	*pointerText = result
}

Cuarto ejemplo | Invertir texto usando punteros

Si te gusta el sabor de los pointers aquí tienes un ejemplo de como inverter texto usando punteros en Go.

func girar(t *string) {
	texto := *t
	result := ""
	for i := len(texto) - 1; i >= 0; i-- {
		result += string(texto[i])
	}
	*t = result
}

Quinto ejemplo | Invertir texto usando punteros

func reverseString(str string) string{
	byte_str := []rune(str)
	for i, j := 0, len(byte_str)-1; i < j; i, j = i+1, j-1 {
		byte_str[i], byte_str[j] = byte_str[j], byte_str[i]
	}
	return string(byte_str)
}

Sexto ejemplo | Invertir texto usando punteros

func girar(t *string) {
	texto := *t
	*t = []{}
	for i := len(texto) - 1; i >= 0; i-- {
		*t += string(texto[i])
	}
}

Tabla de test para la función textReverse

Con este test pones aprueba tu algoritmo con casos diferentes y valora:

package texto_test

import "testing"

func TestgirarTexto(t *testing.T) {
	tests := map[uint8]struct {
		texto  string
		textOk string
	}{
		1: {texto: "Primer texto", textOk: "otxet remirP"},
		2: {texto: "Soy un dev", textOk: "ved nu yoS"},
		3: {texto: "me gusta la pizza", textOk: "azzip al atsug em"},
		4: {texto: "Robert Grisemer", textOk: "remesirG treboR"},
	}

	for k, vTest := range tests {
		vResult, ok := girarTexto(vTest.texto)

		if vTest.textOk != vResult {
			t.Logf("Error test %v, esperaba %s y recibi %s", k, vTest.textOk, vResult)
			t.Fail()
		}

		if len(vTest.texto) != len(vResult) {
			t.Logf("Error test %v, tamaño de texto inicial %s final %s", k, len(vTest.texto), len(vResult))
			t.Fail()
		}
	}
}

https://play.golang.com/p/aTS8-9Cikf5 (se podría hacer una copia del código para enviarlo al playground)

  • Instagram
  • TikTok
  • Youtube

Ahora que sabemos cómo invertir una cadena de caracteres en Go, podemos aplicar esta técnica para invertir cualquier texto que queramos. Aquí te presentamos 5 ejemplos de cómo aplicar la inversión de texto en Go:

  1. “Hola mundo” invertido es “odnum aloH”
  2. “Go es divertido” invertido es “odnetrivid se oG”
  3. “Programar es divertido” invertido es “odnetrivid se ramargorP”
  4. “El futuro pertenece a los que creen en la belleza de sus sueños” invertido es “smeud sus edleb la ni neerC euq sol a ebel a nelec eht niocreP ortuf lE”
  5. “La imaginación es más importante que el conocimiento” invertido es “tnemegaknok eht euq etnatropmi aL”

Ahora sabes 5 algoritmos para invertir un textos en go, y la buena noticia es que es muy similar a la hora de invertir un Slice en Go

Un abrazo y recuerda que debes tener una buena hidratación, bebe agua!

Footer

Primeros con algoritmia

Amazon Interview | Asteroid Collision | Data Structures & Algorithms

Algoritmos por dificultad en Go

  • Fácil
  • Intermedio
  • Avanzado
  • Todos
  • GitHub

Algoritmos fáciles con Go

  • Amazon Interview | Asteroid Collision | Data Structures & Algorithms
  • Cifrado César
  • Math And Geometry
  • Bit Manipulation
  • Básicas
  • Más usadas
  • Complejas

Algoritmos intemedios con Go

  • Amazon Interview | Asteroid Collision | Data Structures & Algorithms
  • Cifrado César

Algoritmos avanzados con Go

  • Amazon Interview | Asteroid Collision | Data Structures & Algorithms
  • Cifrado César

Copyright © 2026 · Log in