Golang实现字符串倒序的几种解决方案
作者:小立立 发布时间:2024-01-30 20:01:37
标签:golang,字符串,倒序
前言
本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:
字符串倒置如下:
Hello World --> dlroW olleH
解决方案1:
length := len(str)
array := make([]string , length)
for i , v := range str{
array[i] = string(v)
}
for i := 0 ; i < length/2 ; i++ {
array[i], array[length -i - 1] = array[length - i -1 ], array[i]
}
str = ""
for _ , v := range array {
str += v
}
大致想法是:
str -循环-> array -循环-> 倒置 --循环--> str
可以转换中文.
问题:
看上去比较繁琐, 而且使用3层循环, 效率肯定不高,
解决方案2
bytes := []rune(str)
for from , to := 0 , len(bytes) -1 ; from < to ; from , to = from + 1, to -1{
bytes[from] , bytes[to] = bytes[to] , bytes[from]
}
str = string(bytes)
return str
使用一层循环, 倒置之后 直接使用 go 内置的 string 函数将 []byte 转换为string
大致思路:
string --直接使用构建数组的方法, 将str 传入进去, 得到 array --> []byte ---for 循环---> 倒置 ---内置的 string 函数--> string
问题:
不能转换 byte 类型
解决方案3 :
bytes := []rune(str)
for from , to := 0 , len(bytes) -1 ; from < to ; from , to = from + 1, to -1{
bytes[from] , bytes[to] = bytes[to] , bytes[from]
}
str = string(bytes)
return str
解决方案2不能转换中文字符的问题:
总结
参考:
string rune byte 的关系
来源:http://www.jianshu.com/p/6c648271bfbd


猜你喜欢
- Pytorch:Conv2d卷积前后尺寸Conv2d参数尺寸变化卷积前的尺寸为(N,C,W,H) ,卷积后尺寸为(N,F,W_n,H_n)W
- 当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到 Mousewheel 事件。其实在大多数浏览器(IE6, IE7, IE8, O
- 用语言实现 好处: 1、可以减少对数据库的访问。 2、可移植性好。 坏处: 1、操作起来考虑的东西较多,修改一处就要修改别一处。也就是说是相
- 大家可能经常会遇到这种情况:sql="select * from table"set rs=conn.execute(s
- 忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。几乎任何一种编程语言,都把字符串列为最
- 今天select * from 表名 where to_days(时间字段名) = to_days(now());昨天SELECT * FR
- 1. Jupyter Notebooks作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!!你
- SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一
- python自带日志管理模块logging,使用时可进行模块化配置,详细可参考博文Python日志采集(详细)。但logging配置起来比较
- 简介Puppeteer是Google开发并开源的一款工具,可用代码驱动浏览器操作。由于诸多优秀的特性,Puppeteer常被用在爬虫与自动化
- 前言:随着移动端的普及出现了很多的移动 APP,应用软件也随之流行起来。最近又捡起来了英雄联盟手游,感觉还行,PC 端英雄联盟可谓是爆火的游
- 1.删除 1)删除记录 Delete from 表名 where id ='xx' 2)
- 和网友们讨论了数组取交集的方法,下面是两个实现arr1=["1","5","6"
- 很多深度神经网络模型需要加载预训练过的Vgg参数,比如说:风格迁移、目标检测、图像标注等计算机视觉中常见的任务。那么到底如何加载Vgg模型呢
- 目录基本介绍优缺点Python实现方式1,元类实现:方式2,继承实现:方式3,装饰器实现:方式4,模块实现:方式5,@classmethod
- mysql高效查询mysql牺牲了group by来增加left join的速度(前提是加了索引)。user表:10万数据实例1: 200秒
- 根据题意理解:本质就是写分页查询:每页条数:10条;当前页码:4页;//第一种:select * from (select ROW
- 前言十三届全国人大三次会议作了政府工作报告。这份政府工作报告仅有10500字左右,据悉是改革开放40年以来最短的一次。受到疫情影响,今年的两
- sql2000的服务器版本是8.0,sql2005是9.0首先要读安装必须配置(见后记)1.我是先装2000的,安装好后打上sp4补丁,(s
- 步骤如下:1.图片灰化;2.中值滤波 去噪3.求图片的光影(自动光学检测)4.除法去光影5.阈值操作6.实现了三种目标检测方法主要分两种连通