C++版 - 剑指offer 面试题4: 替换空格 题解
面试题4:替换空格
提交网址: http://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155
参与人数:10327 时间限制:1秒 空间限制:32768K
本题知识点:字符串
题目描述
请实现一个函数void replaceSpace(char *str,int length),将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
分析:
AC代码
文件名: AimedAtOffer-replaceSpace.cpp
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
class Solution{
public:
void replaceSpace(char *str, int length)
{
if(str==NULL || length<=0) return;
int newlen=0;
int spaceCount = 0;
int idx;
for(idx = 0; str[idx] != '\0'; idx++)
{
if (str[idx] == ' ')
{
spaceCount++;
}
}
newlen = idx + 2*spaceCount;
if(newlen > length) return;
str[newlen]='\0'; //此行很关键
int frontCur = idx - 1, backCur = newlen-1;
for(; frontCur >= 0 && backCur > frontCur; frontCur--)
{
if (str[frontCur] == ' ')
{
str[backCur--] = '0';
str[backCur--] = '2';
str[backCur--] = '%';
}
else str[backCur--] = str[frontCur];
}
}
};
// 以下为测试部分
/*
int main()
{
Solution sol;
char str[]="Hello World, haha";
sol.replaceSpace(str, 20);
// printf("%s\n",str);
cout<<str<<endl;
return 0;
}
*/
C++版 - 剑指offer 面试题4: 替换空格 题解的更多相关文章
- 剑指offer面试题4 替换空格(java)
注:利用java中stringBuilder,append,length方法很方便的解决字符串问题 /* * 剑指offer 替换空格 * xsf * */ /*开始替换空格的函数,length为原数 ...
- 剑指offer面试题4 替换空格(c)
- 剑指Offer:面试题4——替换空格(java实现)
问题描述:请实现一个函数,把字符串中的每个空格替换成"%20". 例如: 输入:"We are happy." 输出:"We%20are%20happ ...
- 剑指Offer编程题2——替换空格
剑指Offer编程题2——替换空格 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happ ...
- 剑指Offer - 九度1510 - 替换空格
剑指Offer - 九度1510 - 替换空格2013-11-29 20:53 题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之 ...
- C++版 - 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题) 原书题目:0, 1, - , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字.求出这个圈圈里剩下的最后一个数字 ...
- C++版 - 剑指offer之面试题37:两个链表的第一个公共结点[LeetCode 160] 解题报告
剑指offer之面试题37 两个链表的第一个公共结点 提交网址: http://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46?t ...
- C++版 - 剑指offer 面试题23:从上往下打印二叉树(二叉树的层次遍历BFS) 题解
剑指offer 面试题23:从上往下打印二叉树 参与人数:4853 时间限制:1秒 空间限制:32768K 提交网址: http://www.nowcoder.com/practice/7fe2 ...
- C++版 - 剑指offer 面试题39:判断平衡二叉树(LeetCode 110. Balanced Binary Tree) 题解
剑指offer 面试题39:判断平衡二叉树 提交网址: http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId= ...
随机推荐
- qq通讯录
- Mac OS mysql数据库安装与初始化
一.官网下载mysql 二.安装并启用 三.数据库初始化 192:bin zhuyajing$ ./mysql -u root -p Enter password: Welcome to the My ...
- 计算机爱好者协会技术贴markdown第二期
上一期我们学了多级标题,加粗,加斜以及蛮好看的小方块,这一期来继续学习吧 Txt版本: *上一期说这样可以加斜* _其实这样也可以加斜_ **上一期说这样可以加粗** __其实这样也可以加粗__ ** ...
- 无法获得锁 /var/lib/dpkg/lock - open
关于 apt-get update 更新的时候出现 无法获得锁 /var/lib/dpkg/lock - open 解决 直接删除这个锁文件即可: sudo rm /var/lib/dpkg/lock ...
- 理解RNN
摘自:https://zybuluo.com/hanbingtao/note/541458 语言模型就是这样的东西:给定一个一句话前面的部分,预测接下来最有可能的一个词是什么. 语言模型是对一种语言的 ...
- Verilog有符号数处理
内容主要摘自以下两个链接: https://www.cnblogs.com/LJWJL/p/3481995.html https://www.cnblogs.com/LJWJL/p/3481807 ...
- Java Web服务器的联机交易
我们知道服务器可以对外部的请求进行应答 ,在BS架构中,通过浏览器可以向Apache Tomcat或者WebSphere服务器发送请求.但是可能存在请求的渠道不是浏览器的情况,他有可能是另外一个jav ...
- OC重写init方法
在创建一个对象的时候我们经常会用到init方法,单单是init只能是初始化,当我们在初始化的时候想要给这个对象加上默认的东西的时候, 系统提供的init方法就不能满足我们的需要,这时,就需要我们自己去 ...
- Redis和memcached缓存技术
缓存的定义:缓存就是在内存中存储的数据备份,当数据没有发生本质变化的时候,我们避免数据的查询操作直接连接数据库,而是去 内容中读取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度 ...
- java holdsLock()方法检测一个线程是否拥有锁
http://blog.csdn.net/w410589502/article/details/54949506 java.lang.Thread中有一个方法叫holdsLock(),它返回true如 ...