Reverse букв в слове, используя range и append. Golang
Задание: реализовать реверс букв в строке (range по массиву rune + append). По документации append добавляет значение в конец массива. Как с помощью функции append можно добавить значение в начало, что получился реверс, например, "Hello" --> "elloH".
Код:
package main
import (
"fmt"
)
func ReverseString(s string) string {
newWord := make([]rune, len(s))
fmt.Println(newWord)
for _, v := range s {
fmt.Println(v)
newWord = append(newWord[0:], v)
}
return string(newWord)
}
func main() {
fmt.Println(ReverseString("Hello"))
}
https://play.golang.org/p/YYLljr0fv_5
Ответы (2 шт):
Автор решения: Ainar-G
→ Ссылка
Задание, конечно, довольно странное, но как-то так:
func ReverseString(s string) string {
var l = len(s)
var rev = make([]rune, l)
for i, r := range s {
_ = append(rev[:l-1-i], r)
}
return string(rev)
}
Дисклеймеры про то, что, когда мы говорим об интернационализованном тексте, всё не так просто, думаю, не нужны.
Автор решения: Stanlyzoolo
→ Ссылка
Вот еще одно решение данной задачи:
func ReverseWordTwo(s string) string {
var newWord []rune
for _, v := range s {
newWord = append([]rune{v}, newWord...)
}
return string(newWord)
}