344. 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s
的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
题目分析:原地翻转字符串
解题思路:递归
1 func reverseString(s []byte){ 2 3 //判断字符串是否为空 4 if len(s)==0{ 5 return 6 } 7 // 开辟一个中转 8 res:=make([]byte,0) 9 10 // 编写递归函数 11 reverse(s,0,&res) 12 // 遍历回原切片 13 for i:=0;i<len(s);i++{ 14 s[i]=res[i] 15 } 16 17 } 18 19 func reverse(s []byte,i int,res *[]byte){ 20 21 // 判断标志位i和len(s) 22 if i==len(s){ 23 return 24 } 25 // 递归 26 reverse(s,i+1,res) 27 28 *res=append(*res,s[i]) 29 30 }
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------222222@---------------------22@@@2222222@@@@@@@2@@2@@@2@@2------------------------------------------------------------------------------------5555555-----------------------------------------------------------------^^^^^^^^^^^^^^^
标签:day1,字符串,手刷,数组,go,byte From: https://www.cnblogs.com/zhuxuanlv/p/17178774.html