首页 > 其他分享 >[力扣] 剑指 Offer 第三天 - 替换空格

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

时间:2022-11-17 18:31:28浏览次数:74  
标签:空格 string Offer Builder ret 力扣 复杂度 字符串 strings

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

题目来源

来源:力扣(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()
}

执行结果

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

复杂度分析

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

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

总结

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

标签:空格,string,Offer,Builder,ret,力扣,复杂度,字符串,strings
From: https://blog.51cto.com/u_15878295/5860955

相关文章

  • 数据库相关知识点整理,助力拿到心仪的offer
    1.数据库的事务1.1什么是数据库事务?事务是指一组逻辑上相关的操作,这些操作要么全部完成,要么全部不完成。事务是数据库管理系统执行过程中的一个逻辑工作单位,是用户定......
  • 力扣19 删除链表的倒数第N个结点
    题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例: 输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5] 思路:给两个指针,让快指针和慢指......
  • 力扣 235. 二叉搜索树的最近公共祖先
    235.二叉搜索树的最近公共祖先给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近......
  • 剑指offer——Day10动态规划(中等)
    Day102022.11.16动态规划(中等)46.把数字翻译成字符串自己实现想到每种数字组成会很复杂,就放弃了,其实题目已经说了是两位数的组合,就还好。题解动态规划。首先,动态规划......
  • 力扣374(java&python)-猜数字大小(简单)
    题目:猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n随机选择一个数字。请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了......
  • 力扣 153. 寻找旋转排序数组中的最小值 [二分变种]
    153.寻找旋转排序数组中的最小值已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums=[0,1,2,4,5,6,7] 在变......
  • 剑指offer——Day06搜索与回溯算法(简单)
    Day62022.11.12搜索与回溯算法(简单)32.Ⅰ.从上到下打印二叉树自己实现用队列来实现。将当前节点的值打印后向queue中push它的左右非NULL儿子节点,并将该节点pop出去代......
  • 剑指offer——Day07搜索与回溯算法(简单)
    Day72022.11.13树的子结构26.树的子结构自己实现应该是用递归,具体没有思路,直接看题解了题解用两个函数isSubStructure()和recur()来解决。就不断去递归比较A的子树......
  • 剑指offer——Day03字符串(简单)
    Day32022.11.9字符串(简单)05.替换空格自己实现遍历字符串中查找空格位置,erase空格,insert"%20"代码如下:classSolution{public:stringreplaceSpace(strings)......
  • JAVA中的字符串加空格的实现方式
    一、问题描述我们现在输入了一个字符串,然后可能在一些情况下,我们需要将字符串中的每一个字符拿空格隔开,那么这种样式应该如何实现呢?二、实现思路我们直接将字符串变成数......