剑指Offer编程题2——替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 

题目解析:

从前向后扫描时,移动元素会出现覆盖的情况,因此选择从后往前扫描:

遇到空格时,将空格以后的字符串都向后移动两个位置,空格处放%,因此需要从最后一个元素开始移动,避免元素覆盖。

代码

class Solution {
public:
void replaceSpace(char *str,int length) {
int i=length-;
int j,count=;
while(i>=) //从后向前扫描字符串
{
if(str[i]==' ')
{
for(j=length-;j>=i;j--)
str[j+]=str[j]; //将字符串从空格到最后的移动两个位置
str[i]='%';
str[i+]='';
str[i+]='';
length+=;
}
i--;
}
}
};

另一种解题:

可以先计算出有多少个空格,需要向后移动多少,这样可以减少每次都从最后一个移动

最新文章

  1. javaScript对象-基本包装类型的详解
  2. 构建 Android 应用程序一定要绕过的 30 个坑
  3. 9. Linux远程登录
  4. [CareerCup] 3.7 Adopt Animal 领养动物
  5. Checkbox的选中删除功能且Ajax返回后清除所选行
  6. POJ 2785
  7. C语言内存地址基础
  8. button以回车方式提交
  9. Core Data (2)-备用
  10. Java菜鸟学习笔记--数组篇(三):二维数组
  11. Java核心技术第四章——2.final 和 static
  12. HTML5表单_form
  13. 2019.03.04 bzoj5308: [Zjoi2018]胖(二分答案+st表)
  14. H5的Page Visibility API
  15. 【转载】 unity 塔防游戏
  16. 剑指offer十七之树的子结构
  17. 咏南Mormot中间件接口
  18. Linux操作_磁盘管理_增加虚拟磁盘
  19. 【转】iOS:AvPlayer设置播放速度不生效的解决办法
  20. codeforces997C Sky full of stars

热门文章

  1. CentOS下部署Redis集群
  2. 模型加速[tensorflow&tensorrt]
  3. svn 钩子应用 - svn 提交字符限制, 不能为空
  4. Spring 使用AOP——基于注解配置
  5. Nginx安全相关配置和nginx.conf中文详解
  6. Spring MVC 使用介绍(七)—— 注解式控制器(三):生产者与消费者模型
  7. Android N和O中使用adb shell dpm set-device-owner 'com.android.cts.verifier/com.android.cts.verifier.managedprovisioning.DeviceAdminTestReceiver' setup Device Owner失败
  8. CF95C Volleyball
  9. Django 模板系统
  10. nuxt.js实战之引入jquery