04. 替换空格(C++版本)
题目:
请实现一个函数,把字符串中的每个空格替换成“%20"。例如输入"We are happy", 则输出"We%20are%20happy"。
代码实现:
void ReplaceBlankWithSpecialChar(char* pData, int totalCount)
{if (nullptr == pData || totalCount < 1) return;int useCount = 0; // 已使用数量int blankCount = 0; // 空格数量for (int idx = 0; idx < totalCount; ++idx){if (pData[idx] == '\0') break;if (pData[idx] == ' ') ++blankCount;++useCount;}if (0 == blankCount) return; // 无空格if (totalCount - (useCount + 1/*加上/0*/) < blankCount * 2) return; // 没有多余空间容纳%20char* pFrontData = pData + useCount;char* pBackData = pFrontData + blankCount * 2;while (pBackData != pFrontData){while (*pFrontData != ' '){*pBackData = *pFrontData;--pBackData;--pFrontData;}--pFrontData;*pBackData-- = '0';*pBackData-- = '2';*pBackData-- = '%';}
}
04. 替换空格(C++版本)相关推荐
- 【剑指offer-Java版】04替换空格
给定字符串将其中的空格替换掉 例如:we are happy -> we%20are%20happy 也就是字符数组中的一个空格字符被替换成了三个字符 由于给定数组,就可以确定替换后每个字符的位 ...
- 《剑指offer》c++版本 5.替换空格
如题: 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之 后的字符串为We%20Are%20Happy. 这道题难度 ...
- 力扣-图解算法数据结构-剑指 Offer 05. 替换空格
题目要求 力扣题解 代码 /*** @program: mydemo* @description: 剑指 Offer 05. 替换空格* @author: Mr.zeng* @create: 2021 ...
- Ubuntu实现kiftd开机自启动(适用于Ubuntu 16.04或更高版本)
本文提要 对于 Ubuntu 16.04或更高版本的Ubuntu系统 而言,实现程序开机自启动的最佳方案无疑是借助新加入的"systemd"功能来实现,这也是Ubuntu官方推荐的 ...
- 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串
LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...
- 剑指offer:面试题05. 替换空格
题目:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 输入:s = "We are happy." 输出:"We%20are% ...
- URL化 替换空格
URL化 替换空格 编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度. 示例 1: 输入:"Mr J ...
- 替换空格---StringBuilder
问题:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We% ...
- Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15
Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15 关于Open vSwitch(OVS)版本与Linux内核的关系,参考这篇文章:Open vSwitch( ...
- 字符串一:替换空格()
/** * 题目:替换空格() * 描述:请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Ar ...
最新文章
- python3 异步错误 asyncio.Semaphore RuntimeError: Task got Future attached to a different loop
- mysql 有always on么,mysql 关于时间类型的刨坑之路
- NYOJ 171 聪明的kk
- Redis Cluster集群模式
- maven 学习---Maven本地资源库
- 歪枣网数据库设计-千万级别海量数据查询效率优化
- 公司绝不会告诉你的20大秘密
- ws2812 c语言程序,STC15单片机驱动WS2812B七彩LED(汇编混合编程)
- 【深度强化学习】A3C
- UE4-(光照)光照贴图
- 沈航-数理统计-17-18B-有答案
- 自动化面试问题及答案_普遍的基本收入是自动化的答案
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)
- JAVA中pin什么意思_pin是什么意思用法
- 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册
- kettle EXCEL 累计输出数据
- 股票API之----------雅虎财经频道
- 云平台的成本优化-提升资源利用率
- xml文件拆分 python_使用Python解析大型拆分XML文件
- 批量提取文件名到excel,批量提取文件名到excel表格
热门文章
- C++工业设备日志记录系统
- ComponentOne 2018V2正式发布,提供轻量级的 .NET
- 【cocos2d-x 3.7 飞机大战】 决战南海I (三) 敌机实现
- Springboot集成通用Mapper与Pagehelper,实现mybatis+Druid的多数据源配置
- Window下本地redis的安装、配置以及java版试用
- [PHP] PHP+MYSQL留言板制作
- notesDocument类的HTTP URL属性 和note URL属性的区别
- 《那些花儿》范玮琪版
- 9.凤凰架构:构建可靠的大型分布式系统 --- 可靠通信
- 8.企业安全建设指南(金融行业安全架构与技术实践) --- 安全考核