剑指 Offer 05. 替换空格(完整代码)
文章目录
- 剑指 Offer 05. 替换空格
- 1. 核心代码
- 2. 完整代码
- 总结
剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
输入:s = "We are happy."
输出:"We%20are%20happy."
1. 核心代码
class Solution {public:string replaceSpace(string s) {int count = 0; //计算空格的个数int fs = s.size(); //替换前的字符串长度for (int i = 0; i < s.size(); i++){if (s[i] == ' ')count++;}s.resize(s.size() + (count * 2)); //将字符串扩大int ls = s.size(); //替换后的字符串长度for (int i = ls - 1, j = fs - 1; j < i; i--, j--){if (s[j] != ' ') {s[i] = s[j];}else {s[i] = '0';s[i - 1] = '2';s[i - 2] = '%';i -= 2;}}return s;}
};
2. 完整代码
#include<iostream>
#include<string>
using namespace std;
class Solution {public:string replaceSpace(string s) {int count = 0; //计算空格的个数int fs = s.size(); //替换前的字符串长度for (int i = 0; i < s.size(); i++){if (s[i] == ' ')count++;}s.resize(s.size() + (count * 2)); //将字符串扩大int ls = s.size(); //替换后的字符串长度for (int i = ls - 1, j = fs - 1; j < i; i--, j--){if (s[j] != ' ') {s[i] = s[j];}else {s[i] = '0';s[i - 1] = '2';s[i - 2] = '%';i -= 2;}}return s;}
};int main()
{string s;getline(cin, s);Solution S;cout << S.replaceSpace(s);
}
总结
使用双指针法,用getline进行读入,用cin的话无法读入空格。
剑指 Offer 05. 替换空格(完整代码)相关推荐
- 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符
一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...
- 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串
LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...
- 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串
一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...
- 《LeetCode力扣练习》剑指 Offer 05. 替换空格 Java
<LeetCode力扣练习>剑指 Offer 05. 替换空格 Java 一.资源 题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输 ...
- 剑指 Offer 05. 替换空格 简单
剑指 Offer 05. 替换空格 问题: 思路: 1. 方法(一):使用额外空间 2. 在原空间上扩展,利用双指针. 问题: 请实现一个函数,把字符串 s 中的每个空格替换成"%20&qu ...
- 力扣-图解算法数据结构-剑指 Offer 05. 替换空格
题目要求 力扣题解 代码 /*** @program: mydemo* @description: 剑指 Offer 05. 替换空格* @author: Mr.zeng* @create: 2021 ...
- 剑指 Offer 05. 替换空格 三种方法
剑指 Offer 05. 替换空格(点击立即答题) 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy.& ...
- 字符串(一) | 剑指 Offer 58 - II. 左旋转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词
剑指 Offer 58 - II. 左旋转字符串 把前k个字符移动到结尾 翻转前k个字符,翻转剩余字符 翻转整个字符串 class Solution { public:void reverse(str ...
- ~4.1 剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格 题目描述 思路 源代码 题目描述 思路 C++: 在 C++ 语言中, string 被设计成「可变」的类型,因此可以在不新建字符串的情况下实现原地修改. 思路: ...
最新文章
- sql int 比较_高质量SQL的30条建议 建议你收藏
- c++栈和java栈的区别
- 数据库开发——MySQL——简单介绍和安装
- 什么时候用不到索引?
- C/C++学习笔记:算法知识之平衡树学习笔记,收藏一波吧!
- Linux基础—3.Linux基础命令总结【有图有真相】
- 大学计算机aoa学什么,浙江省高校计算机二级AOA考试excel试题及解析.xls
- 什么是存储过程?有什么优点?
- 组策略 禁止用户策略下发到指定计算机,使用组策略禁止域用户运行特定程序...
- 一键刷入twrp_努比亚Z17-Z17S-Z17mini 刷入MIUI10系统刷机教程
- 深度学习中优化方法——momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam
- html网页设计动态烟花效果
- 彻底搞懂原生事件流和 React 事件流
- python-华三防火墙过期策略统计
- 学python吧-Python为什么这么厉害? 不想成为专业码农? 来学习Python吧!
- 田野调查手记·浮山摩崖石刻(五)
- [转载]流利说Level5
- [001]code blocks - error: expected identifier or ‘(‘ before ‘int‘|
- 三键调光调色带定时遥控台灯方案-DLT8T10S-杰力科创
- 如何查看SCI期刊影响因子
热门文章
- ZooZ推出应用内移动支付SDK
- Ink脚本语言学习笔记(四)
- 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
- Vue 合同模板_【开源】后端开发也很容易上手的前端框架模板
- html5 按钮css样式修改,css样式制作的漂亮按钮
- 解决Error:L6218E:Undefined symbol TimingDelay_Decrement (referred from stm32f2xx_it.o)问题
- 整数平方一定大于零吗?
- 【MYSQL】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- 游戏网络同步——MMO位置同步
- Excel成神之道-001-数据分列