问题描述 翻转含有 中文、数字、英文字母
等任意字符串
示例
输入:"he師l發lo,世。+-*界,6"
输出:"6,界*-+。世,ol發l師eh"
Golang 实现
package mainimport "fmt"func reverseString(s string) string {
// 将字符串转换为 rune 类型的切片,并对该切片翻转
res := reverse([]int32(s))
// 再把 rune 类型的切片转为 string
return string(res)
}func reverse(s []int32) []rune {
// 左右指针,对切片依次翻转
for i, j := 0, len(s)-1;
i < j;
i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
return s
}func main() {
s := "he師l發lo,世。+-*界,6"
res := reverseString(s)
fmt.Println(res)
}
rune
关键字是 int32
的别名,比 byte
可以表示更多的字符,可以处理一切字符。因此,将字符串转为
rune
的切片,再进行翻转,即可解决。当然,你也可以写
[]int32
。在 go 的源码中:
type byte = uint8type rune = int32
李培冠博客 欢迎访问我的个人网站:
【Golang|golang 如何翻转含有中文 数字 英文字母等任意字符串】李培冠博客:lpgit.com
推荐阅读
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- c语言|C语言初期学习遇到的特殊点 【三子棋详解】【初学者福音,详细总结,复习能手】
- Python|Python实战(使用线性回归预测房价)
- IC|数字IC后端真的不如前端设计和验证吗()
- Python|教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~
- python|oeasy教您玩转python - 007 - # 字符本质
- vue.js|后端开发学习Vue(一)
- Go|Docker后端部署详解(Go+Nginx)
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务