写点什么

[力扣] 剑指 Offer 第三天 - 替换空格

作者:陈明勇
  • 2022-11-17
    广东
  • 本文字数:548 字

    阅读完需:约 2 分钟

[力扣] 剑指 Offer 第三天 - 替换空格

耐心和持久胜过激烈和狂热。

题目来源

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/ti-huan-kong-ge-lcof

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目描述

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例

输入:s = "We are happy."输出:"We%20are%20happy."
复制代码

题目分析

本文使用 Go 语言去实现算法,由于 Go 语言是 string 类型是不可变的,因此需要创建一个新的字符串,这里使用 strings.Builder 去动态创建字符串。

算法

  • 定义 ret 变量 → var ret strings.Builder

  • 遍历字符串,判断字符是否为空格,条件成立则往 ret 对象里写入字符串 20%,否则写入原字符

  • ret 转化为字符串并返回

代码实现

func replaceSpace(s string) string {    var ret strings.Builder    for i, _ := range s {        if s[i] == ' ' {            ret.WriteString("%20")        } else {            ret.WriteByte(s[i])        }    }    return ret.String()}
复制代码

执行结果

复杂度分析

时间复杂度:O(N),其中 N 为字符串的长度,遍历字符串需要 O(N)

空间复杂度:O(N),其中 N 为字符串的长度,strings.Builder 需要额外的线性空间,它的底层实现是 []byte

总结

如果本文对你有帮助,欢迎点赞收藏加关注,如果本文有错误的地方,欢迎指正!

发布于: 刚刚阅读数: 4
用户头像

陈明勇

关注

一个热爱技术,喜欢专研技术的程序员。 2021-10-20 加入

还未添加个人简介

评论

发布
暂无评论
[力扣] 剑指 Offer 第三天 - 替换空格_Go_陈明勇_InfoQ写作社区