IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> offer 第5题 -> 正文阅读

[数据结构与算法]offer 第5题

前言

该系列文章为本人刷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 <len(s):#记得刷的题中有如果s在遍历中会改变的话双重循环的时候会有个坑的情况。遇见再补充上
        #     if s[i] == " ":
        #         s_new += "%20"
        #     else:
        #         s_new += s[i]
        #     i +=1

        return s_new

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 <len(s); i++{
      if s[i] == ' '{
         s_slice = append(s_slice,'%','2','0')
      }else{s_slice = append(s_slice,s[i])}
   }
   s_new := string(s_slice)

   return s_new

总结

注意在go中[]byte转string使用string([]byte). 反过来string转[]byte使用[]byte(string).

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 11:11:28  更:2021-10-22 11:13:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:31:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码