题解 | #字符串反转#
字符串反转
https://www.nowcoder.com/practice/e45e078701ab4e4cb49393ae30f1bb04
package main import ( "fmt" ) func reverseString(str string) string { runes := []rune(str) length := len(runes) for i:=0; i< length/2;i++ { runes[i], runes[length-i-1] = runes[length-i-1], runes[i] } return string(runes) } func main() { var input string fmt.Scan(&input) reversed := reverseString(input) fmt.Println(reversed) }
在上面的代码中,我们定义了一个reverseString
函数来反转字符串。它接受一个字符串作为参数,并将其转换为[]rune
类型以便进行修改。然后,我们使用两个指针从字符串的两端向中间遍历,并交换字符的位置,直到达到中间位置。最后,我们将修改后的[]rune
转换回字符串并返回。
在main
函数中,我们首先读取输入的字符串,然后调用reverseString
函数来获取反转后的字符串,并将其打印输出。
package main import ( "fmt" "strings" ) func reverseString(s string) string { // 将字符串转换成字符数组 strArr := strings.Split(s, "") // 反转字符数组 for i, j := 0, len(strArr)-1; i < j; i, j = i+1, j-1 { strArr[i], strArr[j] = strArr[j], strArr[i] } // 将字符数组转换成字符串 return strings.Join(strArr, "") } func main() { var s string fmt.Scanln(&s) fmt.Println(reverseString(s)) }