耐心和持久胜过激烈和*。
题目来源
来源:力扣(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
总结
如果本文对你有帮助,欢迎点赞收藏加关注,如果本文有错误的地方,欢迎指正!