英文:
Trying to reverse strings but there are spaces after reversing the string
问题
我正在尝试编写一个字符串反转函数,用于反转给定的字符串:
func reverseString(s string) []rune
我成功地实现了这个函数,但问题是在反转后有空格。
输入:"Hello, 世界"
输出:[界 世 , o l l e H]
函数的代码如下:
func reverseString(s string) []rune {
	// 将字符串转换为 rune 切片
	sir := []rune(s)
	for i, _ := range sir {
		sir[i], sir[len(sir)-i-1] = sir[len(sir)-i-1], sir[i]
		if i >= len(sir)-i-1 {
			return sir
		}
	}
	return sir
}
由于我是 Go 语言的新手,所以可能没有出现错误的实现。
谢谢你的帮助。
英文:
I was trying to write a stringReverse function which reverses the given string:
func reverseString(s string) []rune
well, i did succeed but the problem is there are spaces after reversing it.
Input: "Hello, 世界"
Output: [界 世 , o l l e H]
code of function :
func reverseString(s string) []rune {
// sir: string in rune
sir := []rune(s)
for i, _ := range sir {
	sir[i], sir[len(sir)-i-1] = sir[len(sir)-i-1], sir[i]
	if i >= len(sir)-i-1 {
		return sir
	}
}
return sir
}
i did not do any error implementation since i am new to go.
Thanks for your help.
答案1
得分: 1
要反转字符串,你可以声明一个空字符串,然后从末尾开始逐个添加字符。以下是相同逻辑的示例代码:
package main
import "fmt"
func reverse(str string) (result string) {
    for _, v := range str {
        result = string(v) + result
    }
    return
}
func main() {
    runeStr := "Hello, 世界"
    fmt.Println(runeStr)
    runeRev := reverse(runeStr)
    fmt.Println(runeRev)
}
输出结果:
Hello, 世界
界世 ,olleH
英文:
To reverse strings,you can declare an empty string and then start appending the characters from the end, one by one.Here is a sample code for the same logic:
package main
import "fmt"
func reverse(str string) (result string) {
	for _, v := range str {
		result = string(v) + result
	}
	return
}
func main() {
	runeStr := "Hello, 世界"
	fmt.Println(runeStr)
	runeRev := reverse(runeStr)
	fmt.Println(runeRev)
}
Output:
Hello, 世界
界世 ,olleH
答案2
得分: 0
尝试将以下代码翻译为中文:
func reverseString(s string) []rune {
    // 将字符串转换为rune切片
    sir := []rune(s)
    
    for i, _ := range sir {
    
        sir[i], sir[len(sir)-i-1] = sir[len(sir)-i-1], sir[i]
        if i+1 >= len(sir)/2 {
            return sir
        }
    }
    return sir
}
请注意,这只是代码的翻译,不包括任何其他内容。
英文:
try to
func reverseString(s string) []rune {
    // sir: string in rune
    sir := []rune(s)
    
    for i, _ := range sir {
    
        sir[i], sir[len(sir)-i-1] = sir[len(sir)-i-1], sir[i]
        if i+1 >= len(sir)/2 {
            return sir
        }
    }
    return sir
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论