golang——reverse反转字符串
2024-09-04 00:53:57
reverse反转,是个比较基础算法。要实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个方式的算法复杂度是O(n),并且还需要重新申请空间。
然而通过对字符串前后对调实现的,方法非常优雅,复杂度一下就降到了O(n/2)。用golang语言模拟如下:
package main import (
"fmt"
) func main() {
s := "hello,golang语言"
fmt.Println(reverseString(s))
fmt.Println(reverseString(reverseString(s)))
// output: 言语gnalog,olleh
// output: hello,golang语言
} // 反转字符串
func reverseString(s string) string {
runes := []rune(s)
for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
runes[from], runes[to] = runes[to], runes[from]
}
return string(runes)
}
golang这边需要先将字符串string转换成rune类型,而后才能进行对调操作.
最新文章
- IE 6 全球分布图 - 中国一枝独秀
- BZOJ 4619 Swap Space 解题报告
- reverse-daily(1)-audio_visual_receiver_code
- 怎样用JS获取ASP.NET服务器控件的客户端ID
- 强大的修改数据库修改语句ALTER TABLE(一)[20160712]
- UVA 540 stl
- C++学习笔记10-面向对象
- 关于学习springboot和springcloud的很不错的教程
- 三、Java多人博客系统-技术架构
- LOJ2980 THUSC2017大魔法师(线段树+矩阵乘法)
- thinkphp5 composer
- Mysql主从同步(复制)(转)
- 创建gitlab ssh 密钥
- HDU 3591 (完全背包+二进制优化的多重背包)
- MySQL的连接方式
- 【Java】编程技术经典书籍列表
- FPGA与CPLD的概念及其区别
- 在Kotlin上怎样用Mockito2 mock final 类(KAD 23)
- flask - 1
- loj2035 「SDOI2016」征途