手刷算法day1(2)(go语言实践)

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-----------------------------------------------------------------^^^^^^^^^^^^^^^

 

posted @ 2023-03-04 18:12  像素飞行员  阅读(19)  评论(0)    收藏  举报