Leetcode-每日一题【剑指 Offer 05. 替换空格】

news2024/11/6 3:03:04

题目 

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

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."

限制:

0 <= s 的长度 <= 10000

解题思路

前置知识

StringBuilder

StringBuilder是Java中的一个可变字符串类,它属于java.lang包。与String类不同,StringBuilder对象的值可以修改,而不会创建新的对象。这使得StringBuilder在需要频繁修改字符串内容的场景下更加高效。

StringBuilder类提供了一系列方法来操作字符串,例如追加、插入、删除、替换等。它的主要特点包括:

1. 可变性:StringBuilder对象的值可以修改,不会创建新的对象。这使得在修改字符串时,不需要频繁地创建新的字符串对象,从而提高了性能。

2. 高效性:StringBuilder类使用了可变的字符数组来存储字符串内容,这使得对字符串的操作更加高效。相比之下,String类中的字符串是不可变的,每次对字符串进行修改时都会创建一个新的字符串对象,导致额外的内存开销。

3. 线程不安全:StringBuilder类是非线程安全的,不适合在多线程环境下使用。如果需要在多线程环境中使用可变字符串,可以使用线程安全的StringBuffer类。

使用StringBuilder类可以方便地进行字符串的拼接、修改和处理,特别适用于需要频繁修改字符串内容的情况,例如循环拼接字符串、动态生成字符串等。

 找到了StringBuilder后,我们一起来看一下这道题

1.题目要求我们把字符串 s 中的每个空格替换成"%20"。因为在java中的String类中的字符串是不可变的,我们需要创建一个新的字符串对象,所以我们先创建一个  StringBuilder 类型的builder,然后用 for()循环遍历原字符串。

2.当遍历到空格时,我们就将“%20”加入bulider中,其余的字符直接加入即可,最后我们将builder转换为字符串输出即可。

代码实现

class Solution {
    public String replaceSpace(String s) {
        StringBuilder bulider = new StringBuilder();
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) == ' '){
                bulider.append("%20");
            }else{
                bulider.append(s.charAt(i));
            }
        }
        return bulider.toString();
    }
}

测试结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/836732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 指针作为函数参数

C语法中&#xff0c;函数的参数不仅可以是基本类型的变量、对象名、数组名或引用&#xff0c;而且可以是指针。 **如果指针作为形参&#xff0c;在调用时实参将值传递给形参&#xff0c;也就是使实参和形参指针变量指向同一内存地址。**这样在子函数运行过程中&#xff0c;通过…

Linux中使用verdaccio 搭建私有npm 服务器

安装verdaccio npm i -g verdaccio安装完成 输入verdaccio,出现下面信息代表安装成功&#xff0c;同时输入verdaccio后verdaccio已经处于运行状态&#xff0c;当然这种启动时暂时的&#xff0c;我们需要通过pm2让verdaccio服务常驻 ygiZ2zec61wsgbo9t9i346jbZ:~$ verdacciowar…

机器学习笔记 - 使用 Tensorflow 从头开始​​构建您自己的对象检测器

一、简述 之前的文章是利用了VGG16的预训练模型,然后构造完全连接的层标头以输出预测的边界框坐标,但是不包含对象标签的分类。 机器学习笔记 - 使用Keras、TensorFlow框架进行自定义数据集目标检测训练_keras 制作 目标检测 数据集_坐望云起的博客-CSDN博客学习如何训练自定…

AMEYA360:瑞萨电子MCU和MPU产品线将支持Microsoft Visual Studio Code

全球半导体解决方案供应商瑞萨电子宣布其客户现可以使用Microsoft Visual Studio Code&#xff08;VS Code&#xff09;开发瑞萨全系列微控制器&#xff08;MCU&#xff09;和微处理器&#xff08;MPU&#xff09;。瑞萨已为其所有嵌入式处理器开发了工具扩展&#xff0c;并将其…

前端Bootstrap中modal常用用法

1.打开官网 Modal Bootstrap v5.1 | Bootstrap官方文档中国镜像 2.选择组件 说明&#xff1a;Components下的modal 3.选择喜欢的样式 说明&#xff1a;本次选择的是Live demo&#xff0c;为了展示更多的可操作性&#xff0c;本次将不用上面的Button trigger modal&#xf…

K8S 部署 RocketMQ

文章目录 添加模板部署本地访问 集群使用 kubesphere 作为工具 添加模板 添加 helm 模板 helm repo add rocketmq-repo https://helm-charts.itboon.top/rocketmq helm repo update rocketmq-repo编写 value.yaml 文件 配置主从节点的个数&#xff0c;例子为单节点 broker:…

java-IDEA MAVEN查看依赖树,解决jar包重复和冲突

如果这里面的依赖关系有红线,就说明有包冲突,一般都是版本不一致,可以在idea里下一个插件Maven Helper,点击install并重启IDEA 打开pom.xml文件&#xff0c;在下方会出现Dependency Analyzer&#xff0c;选择它会出现重复依赖列表&#xff0c;选择对应的依赖&#xff0c;右键红…

微信开发之定时发送朋友圈的技术实现

请求URL&#xff1a; http://域名地址/snsSend 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId是String登录实例标识content是String文…

FFmpeg解码详细流程

介绍 FFmpeg的 libavcodec 模块完成音视频多媒体的编解码模块。老版本的 FFmpeg 将avcodec_decode_video2()作为视频的解码函数 API&#xff0c;将avcodec_decode_audio4()作为音频的解码函数 API&#xff1b;从 3.4版本开始已经将二者标记为废弃过时 API&#xff08;attribut…

java.util.LinkedList 中的pop() poll() peek()三个方法的区别

先说结果&#xff1a; /** 这两个方法底层调用的都是 unlinkFirst () 这个方法** pop这个方法是通过removeFirst() 在去调用的unlinkFirst();* poll() 是直接调用的unlinkFirst();** 而 removeFirst() 这个方法&#xff0c;在头结点为空的时候会报NoSuchElementException();** …

re学习(27)攻防世界toddler_regs(字符串函数总结+交叉引用)

找不到main&#xff08;&#xff09;函数&#xff0c;查找字符串&#xff0c;发现特殊字符串 定位字符串出现的位置&#xff0c;反汇编出代码&#xff0c;进行分析“ flag{Xp0int_1s_n1c3_but_Xp0intJNU_is_we1rd} 总结 一.CP&#xff1a;shiftF12 展示所有的字符串; ctrlx查…

深度学习里面为什么喜欢用对数

1.这样可以简化计算并提高稳定性&#xff0c;有着相同的临界点 2.由P(A).P(B)给出两个独立事件A和B共同出现的概率。如果我们使用log&#xff0c;即log(P(A)) log(P(B))&#xff0c;这很容易映射到一个和。因此&#xff0c;更容易将神经元触发的“事件”作为线性函数来处理。…

对于数据库查询索引和查字典索引的理解

之前面试问过我对于数据库索引的理解&#xff0c;这个问题不是具体的问题太宽泛&#xff0c;面试官也没进行引导&#xff0c;我不知道怎么回答&#xff0c;下面是结合查字典进行理解。 查字典 拿查字典举例&#xff0c;知道一个字怎么写但是不知道具体的意思以及发音&#xff…

6.如何用CSV文件生成异构图数据集

我们将使用GroupLens研究小组收集的MovieLens数据集。 这个数据集描述了MovieLens的五星评级和标记活动。该数据集包含来自600多名用户的9000多部电影的约10万个评分。我们将使用该数据集生成两种节点类型&#xff0c;分别保存电影和用户的数据&#xff0c;以及一种连接…

【我们一起60天准备考研算法面试(大全)-第三十四天 34/60】【前缀和】【北邮】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

【Linux】Linux下git的使用

文章目录 一、什么是git二、git发展史三、Gitee仓库的创建1.新建仓库2.复制仓库链接3.在命令行克隆仓库3.1仓库里的.gitignore是什么3.2仓库里的git是什么 三、git的基本使用1.将克隆仓库的新增文件添加到暂存区(本地仓库)2.将暂存区的文件添加到.git仓库中3.将.git仓库中的变化…

4.msf辅助模块

目录 1 在虚拟机中设置与外部相同的网段 2 当前内网中的可用IP arp_sweep 3 搜索指定IP的TCP端口信息 portscan/tcp 4 扫描http服务的路由 http/dir_scanner 5 SSH密码爆破 ssh/ssh_login 1 在虚拟机中设置与外部相同的网段 我真实机的地址的网段是192.168.0 我虚拟…

【大模型】开源且可商用的大模型通义千问-7B(Qwen-7B)来了

【大模型】开源且可商用的大模型通义千问-7B&#xff08;Qwen-7B&#xff09;来了 新闻通义千问 - 7B 介绍评测表现快速使用环境要求安装相关的依赖库推荐安装flash-attention来提高你的运行效率以及降低显存占用使用 Transformers 运行模型使用 ModelScope 运行模型 量化长文本…

SAP标准搜索帮助(Search Help)改造之标准增强点

1. 搜索帮助加载前 包含程序&#xff1a;LWDTMO01 行&#xff1a;40 标准搜索帮助输出前的控制&#xff08;影响标准Search Help CDS View Search Help&#xff08;如果在标准Search Help搜索帮助出口函数上修改控制参数&#xff0c;则不会影响 CDS View Search Help&#xf…

【Kubernetes】Kubernetes之二进制部署

kubernetes 一、Kubernetes 的安装部署1. 常见的安装部署方式1.1 Minikube1.2 Kubeadm1.3 二进制安装部署2. K8S 部署 二进制与高可用的区别2.1 二进制部署2.2 kubeadm 部署二、Kubernetes 二进制部署过程1. 服务器相关设置以及架构2. 操作系统初始化配置3. 部署 etcd 集群4. 部…