字符串反转问题

好像不可以通过的遍历的方式修改字符串
can't assign to s[i]

func f6(s string) string {
    l := len(s)
    for i := range s {
        s[i], s[l-i-1] = s[l-i-1], s[i]
    }
    return s
}
最佳答案

这个网站的右键被禁掉了?

9年前 评论
讨论数量: 5

调完了,把string转[]byte就行了

func f6(s string) string {
    l := len(s)
    temp := []byte(s)
    for i := 0; i < l/2; i ++ {
        temp[i], temp[l-i-1] = temp[l-i-1], temp[i]
    }
    return string(temp[:])
}
5年前 评论
  1. 转成字节切片就可以 []byte()
  2. for i := range s 这里也有问题吧,相当于交换了顺序,又给换回去了.
5年前 评论

划重点:
String 是不可更改的

5年前 评论

@Bernard 转换成[]rune比较好,可以支持 UTF-8 编码。

5年前 评论
awesee
func reverseString(s string) string {
    runes := []rune(s)
    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)
}
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!