LeetCode替换空格
LeetCode 替换空格
题目描述
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
实例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
一得之见(Java/Python)
使用 Java 的 replaceAll()方法,直接进行替换
/**
* 把字符串 s 中的每个空格替换成"%20"。
*
* @param s 原字符串
* @return 替换后字符串
*/
public static String replaceSpace(String s) {
return s.replaceAll(" ", "%20");
}
使用 Python 的 replace()方法,直接进行替换
def replace_space(s: str) -> str:
"""
把字符串 s 中的每个空格替换成"%20"。
:param s: 原字符串
:return: 替换后字符串
"""
return s.replace(" ", "%20")
他山之石(Java/Python)
由于每次替换从 1 个字符变成 3 个字符,使用字符数组课方便进行替换。简历字符数组的长度为 s 的长度的 3 被,这样可保证字符数组可以容纳所有替换后的字符。
- 获得 s 的长度 length
- 创建字符数组 array,其长度为 length*3
- 初始化 size 为 0,size 表示替换后的字符串的长度
- 从左到右遍历字符串 s
- 获得 s 的当前字符 c
- 如果字符 c 是空格,则令
array[size] = '%'
,array[size + 1] = '2'
,array[size + 2] = '0'
,并将 size 的值加 3 - 如果字符 c 不是空格,则令
array[size] = c
,并将 size 的值加 1 -遍历结束之后,size 的值等于替换后的字符串的长度,从 array 的前 size 个字符创建新字符串,并返回新字符串
时间复杂度:O(n) 空间复杂度:O(n)
/**
* 把字符串 s 中的每个空格替换成"%20"。
*
* @param s 原字符串
* @return 替换后字符串
*/
public static String replaceSpaceTwo(String s) {
int sLen = s.length();
char[] sArray = new char[sLen * 3];
int size = 0;
for (int i = 0; i < sLen; i++) {
char c = s.charAt(i);
if (c == ' ') {
sArray[size++] = '%';
sArray[size++] = '2';
sArray[size++] = '0';
} else {
sArray[size++] = c;
}
}
String newStr = new String(sArray, 0, size);
return newStr;
}
- 初始化一个 list,记为 res
- 遍历列表 s 的每个字符 c:
- 当 c 为空格时:向 res 后添加字符串"%20"
- 当 c 不为空格时:向 res 后添加字符串 c
- 将列表 s 转换为字符串并返回。
时间复杂度:O(n) 空间复杂度:O(n)
def replace_space_two(s: str) -> str:
"""
把字符串 s 中的每个空格替换成"%20"。
:param s: 原字符串
:return: 替换后字符串
"""
res = []
for c in s:
if c == ' ':
res.append("%20")
else:
res.append(c)
return "".join(res)
效率对比(Java)
输入:"We are happy"
方法一:3575700ns
方法二:338300ns
效率对比(Python)
输入:"We are happy"
方法一:3300ns
方法二:7600ns
LeetCode替换空格的更多相关文章
- 剑指Offer面试题:3.替换空格
一.题目:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入“We are happy.”,则输出“We%20are%20happy.”. 在网络编程中 ...
- 剑指Offer 替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路: 替换空格,先遍历一遍记 ...
- 剑指Offer:面试题4——替换空格(java实现)
问题描述:请实现一个函数,把字符串中的每个空格替换成"%20". 例如: 输入:"We are happy." 输出:"We%20are%20happ ...
- 【面试题004】c/c++字符串,替换空格
一,c/c++字符串 1.C/C++中每个字符串都以字符’\0‘作为结尾,这样我们就能很方便地找到字符串的最后尾部. 由于这个原因每个字符串都有一个额外的开销,注意字符串越界的问题: 2.C/C+ ...
- 【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”
//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void ...
- 剑指offer-面试题4.替换空格
题目:请实现一个函数,把字符串中的每个空格都替换成"%20".例如输入"We are happy." 则输出"We%20are%20happy.&qu ...
- 剑指offer编程题Java实现——替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. package ...
- 【剑指offer】04替换空格,C++实现
0.前言 # 替换空格为字符串部分的题目,剑指offer中字符串系列的文章地址,剑指offer全系列文章地址 1.题目 # 请实现一个函数,将一个字符串中的空格替换成"%20".例 ...
- 剑指offer面试题4 替换空格(java)
注:利用java中stringBuilder,append,length方法很方便的解决字符串问题 /* * 剑指offer 替换空格 * xsf * */ /*开始替换空格的函数,length为原数 ...
随机推荐
- 使用 ASP.NET Core 3.1 的微服务开发指南
使用 ASP.NET Core 3.1 的微服务 – 终极详细指南 https://procodeguide.com/programming/microservices-asp-net-core/ A ...
- linux下软链接文件的拷贝
最近在编译libnl库准备拷贝到其他机器中使用的时候出现无法拷贝问题,原因是sd卡是fat32文件系统格式,这种文件系统不支持linux下的ln软链接文件, void@void-ThinkPad-E4 ...
- 议题解析与复现--《Java内存攻击技术漫谈》(一)
解析与复现议题 Java内存攻击技术漫谈 https://mp.weixin.qq.com/s/JIjBjULjFnKDjEhzVAtxhw allowAttachSelf绕过 在Java9及以后的版 ...
- 力扣 - 剑指 Offer 66. 构建乘积数组
题目 剑指 Offer 66. 构建乘积数组 思路1 按照一般的思路就是将所有的相乘,然后除以每一位数字就是答案,但是题目要求我们不能使用除法,因此我们会想到每次遍历到每个数字的时候,在遍历一遍数组, ...
- Apache Solr应用服务器存在远程代码执行漏洞👻
Apache Solr应用服务器存在远程代码执行漏洞 1.描述 Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的. Solr是一个高 ...
- VIM处理工具与正则表达式
*本文中/data目录为训练目录 1.在vim中设置TAB缩进为四个字符 打开vim 输入:set tabstop=4 2.复制/etc/rc.d/init.d/functions文件至/tmp/,替 ...
- STC单片机控制28BYJ-48步进电机
STC单片机4*4按键控制步进电机旋转 28BYJ-48型步进电机说明 四相永磁式的含义 28BYJ-48工作原理 让电机转起来 最简单的电机转动程序 电机转速缓慢的原因分析 便于控制转过圈数的改进程 ...
- Merge into用法总结
简单的说就是,判断表中有没有符合on()条件中的数据,有了就更新数据,没有就插入数据. 有一个表T,有两个字段a.b,我们想在表T中做Insert/Update,如果条件满足,则更新T中b的值,否则在 ...
- C# 计算农历日期方法(2021版)
解决问题 旧版农历获取方法报错,会有 到 2021年 m数组越界了 if (LunarData[m] < 4095) 此方法可以解决 主体代码 public static class China ...
- js 函数和函数的参数
/* * 函数 function * - 函数也是一个对象 * - 函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) * - 函数中可以保存一些代码在需要的时候 ...