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
0
投稿
猜你喜欢
- 前言在CSDN发的第一篇文章,时隔两年,终于实现了爬微博的自由!本文可以解决微博预登录、识别“展开全文”并爬取完整数据、翻页设置等问题。由于
- 创建python虚拟环境virtualenv、virtualenvwrapper1,为什么需要搭建虚拟环境由于当机器上两个项目依赖于相同包的
- 简介Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语
- 关于手机号码的提取,其实真正有用的部分就是re模块提供的正则表达式。使用正则表达式就能轻松地匹配到手机号码,由于功能比较简单这次并没有采用U
- numpy和matlab的几点差异Python numpy和matlab都是便捷灵活的科学计算语言,两者具有很多相似之处,但也有一些混淆的地
- Numpy随机矩阵: np.random.randn(d0, d1, d2, ...)矩阵大小与形状: np.ndarray.size 与
- 数据结构typedef struct { PyObject_VAR_HEAD Py_ha
- 实战场景经常有朋友问,学 Python 面向对象时,翻阅别人代码,会发现一个 super() 函数,那这个函数的作用到底是什么?super(
- 首先介绍一下import和include的区别或者说import相对include的好处:import导入的内容只会被包含一次,在引入之前会
- 准备开始学习Python,但是刚准备环境搭建时就遇到了下面的错误:仔细的看了看,说是缺少DLL。对于这个问题的解决办法:方法一:1. 在安装
- 常用的module是 os ,os.path 和shutil,所以要先引入他们. python遍历文件夹和文件
- 列表(元组)基本操作符回顾len()函数在列表与元组上的使用示例如下:names = ['Neo', 'Lily
- 关于list的insert函数list#insert(ind,value)在ind元素前面插入value首先对ind进行预处理:如果ind&
- 数据挖掘的过程中,数据进行处理是一重要的环节,我们往往会将其封装成一个方法,而有的时候这一个方法可能会被反复调用,每一次都对数据进行处理这将
- golang中允许对值为 nil 的 slice 添加元素package main func main() { var s []int s
- 我就废话不多说了,直接上代码吧!#Python的matrix转置matrix = [[1,2,3,4],[5,6,7,8],[9,10,11
- 目录前置知识可迭代对象如何判断一个对象是否是可迭代对象?enumerate 函数多嵌套列表总结前置知识如果给定一个 list 或 tuple
- 1、终极方法:条件注释<!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本。 <![endif]
- 关于python数据分析常用库pandas中的DataFrame的loc和iloc取数据 基本方法总结归纳及示例如下:1.准备一组DataF
- 话不多说,直接上代码吧!import numpy as npA = np.delete(A, 1, 0) # 删除A的第二行B = np.d