{面试题4: 替换空格}
From 剑指Offer 何海涛 著
#include <iostream> #include <cstring>void replaceBlank(char *str, int length) {if(str != NULL && length > 0) {int numberOfBlank = 0;int originLength = 0;while(str[originLength] != '\0') {if(str[originLength++] == ' ') {numberOfBlank++;}}int newLength = originLength + (numberOfBlank<<1);if(newLength <= length) {int indexOfOrigin = originLength;int indexOfNew = newLength;while(indexOfOrigin < indexOfNew) {if(str[indexOfOrigin] == ' ') {str[indexOfNew--] = '0';str[indexOfNew--] = '2';str[indexOfNew--] = '%';} else {str[indexOfNew--] = str[indexOfOrigin];}indexOfOrigin--;}}} }
测试集:
void test(char *str, int length, char *expected) {std::cout << std::boolalpha << (replaceBlank(str, length), str != NULL && expected != NULL && strcmp(str, expected) == 0 ? true : str == expected) << std::endl; }int main(int argc, char* argv[]) {char str1[32] = "";char str2[32] = " ";char str3[32] = "Hello World!";char str4[32] = " HelloWorld!";char str5[32] = "HelloWorld! ";char str6[32] = "Hello World!";test(NULL, 0, NULL);test(str1, 16, "");test(str2, 32, "%20%20%20");test(str3, 32, "Hello%20World!");test(str4, 32, "%20HelloWorld!");test(str5, 32, "HelloWorld!%20");test(str6, 32, "Hello%20%20World!");retur 0;}
转载于:https://www.cnblogs.com/long3216/p/4439095.html
{面试题4: 替换空格}相关推荐
- 【剑指offer】面试题 5. 替换空格
面试题 5. 替换空格 题目:请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy. 则经过替换之后的字符串为We%20Are%20Hap ...
- 剑指offer:面试题05. 替换空格
题目:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 输入:s = "We are happy." 输出:"We%20are% ...
- 面试题05. 替换空格
2020-03-21 1.题目描述 替换空格 2.题解 if (s[i]==' ') res+="%20"; else res+=s[i]; 3.代码 #include <i ...
- 剑指offer面试题:替换空格
https://blog.csdn.net/yanxiaolx/article/details/52235212 题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输 ...
- 剑指Offer - 面试题5. 替换空格(字符串)
1. 题目 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We%20 ...
- 剑指offer面试题05. 替换空格
题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 思路 详见链接 在 Python 和 Java 等语言中,字符串都被设计成不可变的类型,即无法直接修改字符串 ...
- c++牛客网面试题05. 替换空格
class Solution{public:string replaceSpace(string s){int count=0,len= s.size();//统计空格的个数for(char c : ...
- leetcode刷题之 剑指offe 面试题05. 替换空格 犯傻记录
2020.3.6 刷到剑指offer第5题,题目描述如下: 题目本身没啥好说的,就是先统计空格的个数,然后把长度增加,用两个指针从后往前插. 采用m = s.count(' ',0,len(s)-1) ...
- 【剑指Offer面试题】 九度OJ1510:替换空格
c/c++ 中的字符串以"\0"作为结尾符.这样每一个字符串都有一个额外字符的开销. 以下代码将造成内存越界. char str[10]; strcpy(str, "01 ...
- 剑指offer——面试题4:替换空格
#剑指offer--面试题4:替换空格 此题的关键思路在于字符串的从后向前复制!!! class Solution { public:void replaceSpace(char *str,int l ...
最新文章
- Spring 注解之@RestController与@Controller的区别
- 关于java代码生成器---上篇之原理
- 【AS3代码】隐藏原有鼠标箭头,并自定义鼠标小箭头
- Expected more than 1 value per channel when training, got input size torch.Size
- 估价分类不允许分离估价
- 重装php后网站无法,1、解决重装php后变量在下一个页面无法取到的问题:
- 李焕英是如何从不被看好到碾压唐探3的?
- 2015年,Web 进入移动时代
- 【面试宝典 | 01】面经
- JavaScript中的原型和对象机制
- threejs获取模型坐标_Threejs倒影实现解析
- 信息学奥赛一本通 1121:计算矩阵边缘元素之和 | OpenJudge NOI 1.8 03:计算矩阵边缘元素之和
- 如何使用Jmeter对WebSocket进行压力测试
- TCP 理论概述与 Java 编码入门
- 苹果被拒:Guideline 5.0 - Legal
- MySQL和数据库可视化工具的下载与安装
- ubuntu16安装liteide
- 用友汽车IPO过会:拟募资5.6亿 高瓴刚参与母公司定增
- 十大安卓应用商店推广渠道排行榜
- 阿里云服务器续费流程及折扣