[力扣] 剑指 Offer 第三天 - 替换空格
耐心和持久胜过激烈和狂热。
题目来源
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/ti-huan-kong-ge-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目描述
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例
复制代码
题目分析
本文使用 Go 语言去实现算法,由于 Go 语言是 string 类型是不可变的,因此需要创建一个新的字符串,这里使用 strings.Builder
去动态创建字符串。
算法
定义
ret
变量 →var ret strings.Builder
遍历字符串,判断字符是否为空格,条件成立则往
ret
对象里写入字符串20%
,否则写入原字符将
ret
转化为字符串并返回
代码实现
复制代码
执行结果
复杂度分析
时间复杂度:O(N),其中 N 为字符串的长度,遍历字符串需要 O(N)
空间复杂度:O(N),其中 N 为字符串的长度,strings.Builder
需要额外的线性空间,它的底层实现是 []byte
总结
如果本文对你有帮助,欢迎点赞收藏加关注,如果本文有错误的地方,欢迎指正!
版权声明: 本文为 InfoQ 作者【陈明勇】的原创文章。
原文链接:【http://xie.infoq.cn/article/00b8fba520cf5b520608a0892】。文章转载请联系作者。
评论