首页 > 编程语言 >手刷算法day1(2)(go语言实践)

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

时间:2023-03-04 18:23:19浏览次数:50  
标签:day1 字符串 手刷 数组 go byte

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

相关文章

  • Go语言目前主要有哪些应用框架
    Go语言是一种高效、快速、简洁的编程语言,近年来越来越受到开发者的欢迎。由于Go语言的快速发展,出现了很多的优秀框架来支持Go应用程序的开发。以下是一些目前比较流行的Go......
  • 手刷算法day1(1)(go语言实践)
    29.DivideTwoIntegers 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从0开始)。如果 needle......
  • MongoTemplate更新实体类的最优方法
    直接上代码@PostMapping("/update")publicObjectupdate(@RequestBodyURLDTOurldto)throwsException{urldto.setName("update");Queryquery=ne......
  • go学习总结
    go语言学习:安装与入门、包管理、go的环境变量、gomod命令的使用、导入自定义包使用的是模块名而不是文件夹名。go中不同模块的互相调用、gotest用于对go程序进行测试:返......
  • 项目day2 -- 在云服务器上配置go开发环境
    之前在win和mac上都配了一次,这次在linux配,属于是都练了一遍安装go下载linux版本安装包wgethttps://studygolang.com/dl/golang/go1.20.1.linux-amd64.tar.gz解压安装......
  • CSGO服务器配置全贴纸插件方法教程
    CSGO服务器配置全贴纸插件方法教程​关于插件的警告​一定要了解V社对于CSGO社区服务器的规定,全皮肤插件/全手套插件等,在设置了GSLT的情况下,是有可能被封禁GSLT账号的(所以慎......
  • 萌新也能看懂的 Golang 题解(一)
    写在前面关于“模拟题”和“算法题”及主观难度评价第一批1791.设备编号(模拟)1792.服务器集群网络延时(排序、数学)1793.给定差值的组合(哈希表)1787.最长元音子串(模......
  • 萌新也能看懂的 Golang 题解(二)
    第二批1807.矩阵转置(数学)难度:简单;主观评价:简单。简单模拟题+数学题(判断完全平方数)。先判断矩阵长度是否为完全平方数(开根号然后自身相乘,判断和开根号之前的数是否一致......
  • 萌新也能看懂的 Golang 题解(三)
    第三批1822.电话拦截(模拟、排序)难度:中等;主观评价:简单。sort.Slice() 应用题,重点在于通配符的判断和如何设计数据结构保证最后能按呼叫顺序返回通话记录。对于没有通......
  • go 使用ssh远程连接服务器并执行命令
    packagemainimport( "fmt" "log" "net" "time" "golang.org/x/crypto/ssh")//连接的配置typeClientConfigstruct{ Hoststring//ip Port......