golang——reverse反转字符串
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类型,而后才能进行对调操作.
golang——reverse反转字符串的更多相关文章
- [Swift]LeetCode557. 反转字符串中的单词 III | Reverse Words in a String III
		Given a string, you need to reverse the order of characters in each word within a sentence while sti ... 
- Leetcode#557. Reverse Words in a String III(反转字符串中的单词 III)
		题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输 ... 
- Leetcode#344. Reverse String(反转字符串)
		题目描述 编写一个函数,其作用是将输入的字符串反转过来. 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man ... 
- LeetCode 344. Reverse String(反转字符串)
		题目描述 LeetCode 344. 反转字符串 请编写一个函数,其功能是将输入的字符串反转过来. 示例 输入: s = "hello" 返回: "olleh" ... 
- 【LeetCode】Reverse Words in a String 反转字符串中的单词
		一年没有管理博客园了,说来实在惭愧.. 最近开始刷LeetCode,之前没刷过,说来也实在惭愧... 刚开始按 AC Rates 从简单到难刷,觉得略无聊,就决定按 Add Date 刷,以后也可能看 ... 
- LeetCode 557:反转字符串中的单词 III  Reverse Words in a String III
		公众号:爱写bug(ID:icodebugs) 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. Given a string, you need to reve ... 
- Leetcode 344:Reverse String 反转字符串(python、java)
		Leetcode 344:Reverse String 反转字符串 公众号:爱写bug Write a function that reverses a string. The input strin ... 
- LeetCode 541. 反转字符串 II(Reverse String II)
		541. 反转字符串 II 541. Reverse String II 
- C# 反转字符串方法
		using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 反转字符 ... 
随机推荐
- NetScaler Logs Collection Guide
			NetScaler Logs Collection Guide 来源 https://support.citrix.com/article/CTX227560 Article | Authentic ... 
- JS基础_立即执行函数
			<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ... 
- linux--查看磁盘空间大小使用情况
			1. linux查看磁盘空间大小命令 df -h Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息, 命令格式: df -hl 显示格式为: 文件系统 容量 ... 
- PHP 多维数组将下标从0开始
			点击链接加入群[php/web 学习课堂]:https://jq.qq.com/?_wv=1027&k=5645xiw 欢迎大家加入,一起讨论学习 模拟一个: public function ... 
- debian设置limits.conf
			最近已经把自己的游戏框架主要功能完成得差不多了,决定将自己的开发环境从debian7升级到debian9,不然太多第三方依赖都跟不上了.debian10刚出来,MongoDB还没适配,所以暂不考虑. ... 
- IPhone中H5页面用on绑定click无效的解决方法
			首先声明本人资质尚浅,本文只用于个人总结.如有错误,欢迎指正.共同提高. --------------------------------------------------------------- ... 
- 6. Design Patterns with First-Class Functions
			1. Refactoring Strategy 1.1 Classic Strategy from abc import ABC, abstractmethod from collections im ... 
- Protocol handler start failedCaused by: java.net.SocketException: Permission denied
			最近在使用mac启动项目的时候,发现原本在Windows下正常跑的项目报错如下: Protocol handler start failedCaused by: java.net.SocketExce ... 
- SQLite3学习笔记(2)
			SQLite 创建表 SQLite 的CREATE TABLE 语句用于在任何指定的数据库创建一个新表. 创建新表,涉及到命名表.定义列及每一行的数据类型. CREATE TABLE 的基本语法如 ... 
- bat 读取 ini 配置文件
			bat 读取 ini 配置文件 config.ini: abc=abc a=a localpath=D:\local\path .bat: @echo off setlocal enabledelay ... 
