题目地址

https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/

思路

如果想把这道题目做到极致,就不要只用额外的辅助空间,先扩充数组到每个空格替换成"%20"之后的大小
然后从后向前替换空格,双指针法:

时间复杂度,空间复杂度均超过100%的用户

C++代码

class Solution {
public:string replaceSpace(string s) {int count = 0; // 统计空格的个数int sOldSize = s.size();for (int i = 0; i < s.size(); i++) {if (s[i] == ' ') {count++;}}// 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小s.resize(s.size() + count * 2);int sNewSize = s.size();// 从后先前将空格替换为"%20"for (int i = sNewSize - 1, j = sOldSize - 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;}
};

笔者在先后在腾讯和百度从事技术研发多年,利用工作之余重刷leetcode,更过干货文章持续更新,可以微信搜索「代码随想录」第一时间围观。本文 GitHub:https://github.com/youngyangyang04/leetcode-master 已经收录,欢迎star,fork,共同学习,一起进步。

leetcode/剑指Offer05.替换空格 双指针法实现原地替换相关推荐

  1. leetcode:剑指offer----替换空格

    题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例: 输入:s = "We are happy." 输出:"We%20are% ...

  2. leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列

    剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...

  3. 【LeetCode 剑指offer刷题】字符串题12:Valid Palindrome(回文词系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Valid Palindrome Given a string, determine if it is a pali ...

  4. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

  5. leetcode剑指offer4

    leetcode剑指offer4 剑指 Offer 19. 正则表达式匹配 剑指 Offer 20. 表示数值的字符串 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 剑指 Offer 22 ...

  6. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  7. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  8. 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...

  9. 5、leetcode剑指offer53 二分查找之0~n-1缺失的数字**

    leetcode剑指offer53 二分查找之0~n-1缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个 ...

  10. leetcode 打印_剑指 Offer 32 - III 从上到下打印二叉树 III - leetcode 剑指offer

    题目难度: 中等 原题链接 今天继续更新剑指 offer 系列, 这道题相比昨天那道题多了个每层打印方向不同的需求, 聪明的你想到应该如何实现了吗? 老样子晚上 6 点 45 分准时更新公众号 每日精 ...

最新文章

  1. 又拍云SSL证书全新上线,提供一站式HTTPS安全解决方案
  2. linux如何安装eclipse
  3. 什么变量在堆内存里存放,什么变量在栈内存里存放
  4. [jQuery] jQuery和Zepto的区别?各自的使用场景?
  5. OPPO 正式发布 ColorOS 7,“轻”装上阵带来多项亮眼新功能……
  6. 浅析下关于js的 逗号运算符 和 改变this指向 的一道题(mv to git)
  7. 基于android对接百度地图搜索附近关键字列表展示并调用第三方地图应用打开导航(百度地图、高德地图)
  8. innodb_file_format设置
  9. 10. Django基础:静态文件
  10. 适合java初学者的几个自学网站
  11. pdf合并成一个pdf软件下载?pdf合并成一个pdf软件合成器工具
  12. SICK CLV650-6000固定式扫码枪参数配置
  13. 语音验证码的优势以及应用场景,最齐全的语言验证码介绍!
  14. extjs6 清除grid中combo列的值
  15. 老师助手为什么总是服务器错误,qq老师助手网络拥挤怎么办
  16. POJ2942 UVA1364 Knights of the Round Table 圆桌骑士
  17. 幼儿教师个人简历模板范文
  18. Chrome 浏览器以 58.09% 的市场占有率稳居世界第一
  19. 华为内部的项目管理之沟通流程
  20. Android开发资源(一)

热门文章

  1. URL地址编码和解码
  2. linux查看进程命令,linux查询指定进程命令
  3. Android架构师之路-oop
  4. 《2008胡润百富榜》前三名
  5. 编译ROS-Academy-for-Beginners
  6. linux 配置ssh免密码登录脚本
  7. Platform(平台)
  8. 高级音频降噪插件:Klevgrand Brusfri for Mac
  9. iZotope Trash 2 for Mac(失真效果音频插件)
  10. 安全使用Mac教程 – 使用文件保险箱加密 Mac 数据