文章目录

  • 剑指 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. 替换空格(完整代码)相关推荐

  1. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  2. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  3. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  4. 《LeetCode力扣练习》剑指 Offer 05. 替换空格 Java

    <LeetCode力扣练习>剑指 Offer 05. 替换空格 Java 一.资源 题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输 ...

  5. 剑指 Offer 05. 替换空格 简单

    剑指 Offer 05. 替换空格 问题: 思路: 1. 方法(一):使用额外空间 2. 在原空间上扩展,利用双指针. 问题: 请实现一个函数,把字符串 s 中的每个空格替换成"%20&qu ...

  6. 力扣-图解算法数据结构-剑指 Offer 05. 替换空格

    题目要求 力扣题解 代码 /*** @program: mydemo* @description: 剑指 Offer 05. 替换空格* @author: Mr.zeng* @create: 2021 ...

  7. 剑指 Offer 05. 替换空格 三种方法

    剑指 Offer 05. 替换空格(点击立即答题) 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy.& ...

  8. 字符串(一) | 剑指 Offer 58 - II. 左旋转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词

    剑指 Offer 58 - II. 左旋转字符串 把前k个字符移动到结尾 翻转前k个字符,翻转剩余字符 翻转整个字符串 class Solution { public:void reverse(str ...

  9. ~4.1 剑指 Offer 05. 替换空格

    剑指 Offer 05. 替换空格 题目描述 思路 源代码 题目描述 思路 C++: 在 C++ 语言中, string 被设计成「可变」的类型,因此可以在不新建字符串的情况下实现原地修改. 思路: ...

最新文章

  1. sql int 比较_高质量SQL的30条建议 建议你收藏
  2. c++栈和java栈的区别
  3. 数据库开发——MySQL——简单介绍和安装
  4. 什么时候用不到索引?
  5. C/C++学习笔记:算法知识之平衡树学习笔记,收藏一波吧!
  6. Linux基础—3.Linux基础命令总结【有图有真相】
  7. 大学计算机aoa学什么,浙江省高校计算机二级AOA考试excel试题及解析.xls
  8. 什么是存储过程?有什么优点?
  9. 组策略 禁止用户策略下发到指定计算机,使用组策略禁止域用户运行特定程序...
  10. 一键刷入twrp_努比亚Z17-Z17S-Z17mini 刷入MIUI10系统刷机教程
  11. 深度学习中优化方法——momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam
  12. html网页设计动态烟花效果
  13. 彻底搞懂原生事件流和 React 事件流
  14. python-华三防火墙过期策略统计
  15. 学python吧-Python为什么这么厉害? 不想成为专业码农? 来学习Python吧!
  16. 田野调查手记·浮山摩崖石刻(五)
  17. [转载]流利说Level5
  18. [001]code blocks - error: expected identifier or ‘(‘ before ‘int‘|
  19. 三键调光调色带定时遥控台灯方案-DLT8T10S-杰力科创
  20. 如何查看SCI期刊影响因子

热门文章

  1. ZooZ推出应用内移动支付SDK
  2. Ink脚本语言学习笔记(四)
  3. 生僻字html乱码,Tomcat 5.5.X及以上版本的生僻字乱码解决办法
  4. Vue 合同模板_【开源】后端开发也很容易上手的前端框架模板
  5. html5 按钮css样式修改,css样式制作的漂亮按钮
  6. 解决Error:L6218E:Undefined symbol TimingDelay_Decrement (referred from stm32f2xx_it.o)问题
  7. 整数平方一定大于零吗?
  8. 【MYSQL】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  9. 游戏网络同步——MMO位置同步
  10. Excel成神之道-001-数据分列