该系列文章为本人刷leetcode的记录,主要旨在分享刷题的思路及算法解析(尽可能的一题多解),另方便自己日后查阅回顾。代码的实现语言是python和go。
进厂免不了刷题,一起加油吧,小伙伴们!
(最近几个月一直在忙小论文的仿真和撰写;最近总算写完初稿了交给老师了。至于能中几区就看运气了哈哈)
题目 offer 第5题链接: https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
题目内容替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"
示例 1:
输入:s = "We are happy." 输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000解题思路
分析: 该题就是常规的字符串替换
容易想到的思路:
1.直接调用库函数replace对字符串s中的空格进行替换
2.暴力解法:循环遍历每个字符判断为空格的直接进行替换
3:字符串直接以空格为界限转切片,再加上“%20”进行拼接(split(), Join()函数)
代码实现 python def replaceSpace(self, s: str) -> str:
#方法1:使用replace库函数
s_new = s.replace(' ',"%20")
#方法2:字符串转切片;因为字符串可能很长,转切片后会好操作一些; 之后再加上"%20"进行拼接
# s1 = s.split(" ")
# s_new = "%20".join(s1)#join()的用法需要注意.是将xx加到切片中的两个元素之间.
#方法3:遍历解法
# s_new = ""
# i = 0
# while i
go
func replaceSpace(s string) string{
//方法1:使用replace库函数
//s_new := strings.Replace(s," ","%20",-1)//返回将s中前n个不重叠old子串都替换为new的新字符串,如果n<0会替换所有old子串。
//s_new := strings.ReplaceAll(s," ", "%20")
//方法2:先以空格为界限切割为切片,再加上"%20"进行拼接
//s_slice := strings.Split(s," ")
//s_new := strings.Join(s_slice,"%20")
//遍历修改
s_slice := []byte{} //这种也是相当于初始化了;和make([]byte,0)一个作用.go中切片的初始化也有坑;等遇见那道题再补充
for i:=0; i
总结
注意在go中[]byte转string使用string([]byte). 反过来string转[]byte使用[]byte(string).



