首页 > 试题广场 >

替换空格

[编程题]替换空格
  • 热度指数:152507 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

数据范围:。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。

示例1

输入

"We Are Happy"

输出

"We%20Are%20Happy"
示例2

输入

" "

输出

"%20"
头像 数据结构和算法
发表于 2021-07-03 22:49:47
精华题解 先把字符串转换为单个字符 这里让求的是把字符串中的空格替换成%20,其中一种实现方式就是申请一个临时数组,然后再遍历这个字符串的每个字符,如果不是空格就把遍历的字符添加到临时数组中,如果是空格就添加3个字符'%','2','0'分别到临时数组中,最后再把临时数组转化为字符串即可。 publi 展开全文
头像 Maokt
发表于 2021-06-28 15:25:14
精华题解 算法思想一:辅助栈 解题思路: 借助栈存储字符,遇到空格是则入栈 '%20' ,直到字符串入栈结束 图解: 代码展示: Python版本 class Solution:     def replac 展开全文
头像 牛客题解官
发表于 2022-04-25 19:07:38
精华题解 题目的主要信息: 将一个字符串s中的每个空格替换成“%20” 保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种 举一反三: 学习完本题的思路你可以解决如下题目: JZ73. 翻转单词序列 方法:字符串截取相加(推荐使用) 具体做法: 我们可以用下标遍历字符串,每次检查下标所在位置的字 展开全文
头像 Peterliang
发表于 2021-07-18 15:15:50
精华题解 题意分析 这个题目的意思很简单,就是将一个字符串里面的空白字符替换成%20 解法分析 解法一 C++版 我们直接使用C++的string进行处理。我们发现C++里面有一个string还是很好用的,它重载了+=运算符。我们可以直接通过遍历整个字符串进行处理。 代码如下 我们需要对长度为n 展开全文
头像 Aorura丶
发表于 2021-03-29 15:56:29
一、String.replaceAll() 直接调用String的封装方法 public String replaceSpace (String s) { if (s == null || "".equals(s)) return s; return s.replace 展开全文
头像 OceanLeee
发表于 2021-04-08 20:48:47
《剑指offer》官方思路解法Java版 牛客网是不是今年改版了,之前的解题思路都被清理掉了。看了下大家的题解好像都没有分享这种方法。虽然Java版的参数传入是String类,不像C语言直接就是字符数组,也不能直接在数组后面扩容。但是其实可以利用StringBuffer类来实现这样的操作。具体的思路 展开全文
头像 Louie.Ye
发表于 2021-03-19 14:14:56
1. 思考点 string类型和数组的关联,size()获取大小,+=的方式进行拼接。非常好用 2. 代码块 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 展开全文
头像 漫漫云天自翱翔
发表于 2021-06-24 20:23:01
题解一:暴力(原字符串上修改)题解思路:从头开始遍历数组,当遇到空格,先将后续字符往后移2个位置,再在空格位置以及后两个位置填上"%20"这三个字符 示例:复杂度分析:时间复杂度:,暴力的两次循环,第一层循环找空格位置,第二层循环将空格后面的字符往后移2位置空间复杂度:,只使用常 展开全文
头像 牛客82035003号
发表于 2022-04-12 19:54:04
第一趟遍历先数出总共有多少个空格,然后就可以知道新字符串是多长,因为每个空格会换成3个字符。 然后再次遍历,遇到空格就改成‘%’,‘2’,‘0’三个字符。 char* replaceSpace(char* s ) {   &nbs 展开全文
头像 牛客70047881号
发表于 2021-04-15 18:00:43
C++中如果直接在string变量后面接字符的话,string内部会做这个处理消耗一定的性能,可以通过遍历一遍字符串确认有多少个空格,从而计算需要空间大小为字符串长度+空格数量2+1,然后自己分配空间,这样子的性能相对较高,具体代码如下:class Solution {public: /* 展开全文
头像 文和906
发表于 2021-10-22 13:55:05
遍历字符串,遇到空格就替换。核心是string.insert()函数的使用。时间复杂度O(n),空间复杂度O(1)。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 展开全文
头像 牛客341287270号
发表于 2021-09-14 23:56:44
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param s string字符串 # @return string字符串 # class Solution: def replaceSpace(self , s ): ret 展开全文
头像 whoway
发表于 2021-03-13 14:32:13
逆向思维 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 展开全文
头像 xixiran001ya
发表于 2021-08-12 04:11:10
思路思路就是遍历字符串,通过charAt获取当前字符,如果是空格,那么就用StringBuilder拼接%20,否者就直接拼接当前字符,因为String是不可变的,而StringBuilder是可变的,所以这样拼接可以大幅度减少内存的开支 结果运行时间:18ms占用内存:9772KB 代码 publ 展开全文