Ejercicios de Go
Reverse a String in Go
Reverse characters and words correctly, including letters like é.
Lo que aprenderás
- []rune
- Swapping with two indexes
- slices.Reverse
reverse("Go")
- 1
[]runeG o - 2
swapo G - 3
string(runes)"oG"
Reverse runes, not bytes
Go strings are UTF-8, so one character can take more than one byte. Reversing a slice of runes keeps letters such as é intact.
[]rune(text) splits the text into characters. Two indexes walk towards each other and swap the characters they point at. strings.Fields splits a sentence into words and slices.Reverse turns their order around.
Puntos clave
- A character can take more than one byte.
- []rune splits text into characters.
- Two indexes swap from both ends.
Ejemplo ejecutable de Go
main.go
package main
import (
"fmt"
"slices"
"strings"
)
func reverse(text string) string {
runes := []rune(text)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func reverseWords(text string) string {
words := strings.Fields(text)
slices.Reverse(words)
return strings.Join(words, " ")
}
func main() {
fmt.Println(reverse("Go"))
fmt.Println(reverse("héllo"))
fmt.Println(reverseWords("simple fast reliable"))
}
oG
olléh
reliable fast simplePractica
Abre el ejemplo en el compilador online, cambia un valor o añade una línea y predice la salida antes de ejecutarlo. Después rompe el código a propósito y lee el mensaje del compilador.
¿Terminaste esta lección?
Márcala como aprendida para seguir tu progreso.
Tu progreso está guardado en este navegador Inicia sesión para conservarlo en todos tus dispositivos.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos