剑指Offer编程题2——替换空格
2024-08-28 19:40:34
剑指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--;
}
}
};
另一种解题:
可以先计算出有多少个空格,需要向后移动多少,这样可以减少每次都从最后一个移动
最新文章
- javaScript对象-基本包装类型的详解
- 构建 Android 应用程序一定要绕过的 30 个坑
- 9. Linux远程登录
- [CareerCup] 3.7 Adopt Animal 领养动物
- Checkbox的选中删除功能且Ajax返回后清除所选行
- POJ 2785
- C语言内存地址基础
- button以回车方式提交
- Core Data (2)-备用
- Java菜鸟学习笔记--数组篇(三):二维数组
- Java核心技术第四章——2.final 和 static
- HTML5表单_form
- 2019.03.04 bzoj5308: [Zjoi2018]胖(二分答案+st表)
- H5的Page Visibility API
- 【转载】 unity 塔防游戏
- 剑指offer十七之树的子结构
- 咏南Mormot中间件接口
- Linux操作_磁盘管理_增加虚拟磁盘
- 【转】iOS:AvPlayer设置播放速度不生效的解决办法
- codeforces997C Sky full of stars
热门文章
- CentOS下部署Redis集群
- 模型加速[tensorflow&;tensorrt]
- svn 钩子应用 - svn 提交字符限制, 不能为空
- Spring 使用AOP——基于注解配置
- Nginx安全相关配置和nginx.conf中文详解
- Spring MVC 使用介绍(七)—— 注解式控制器(三):生产者与消费者模型
- Android N和O中使用adb shell dpm set-device-owner 'com.android.cts.verifier/com.android.cts.verifier.managedprovisioning.DeviceAdminTestReceiver' setup Device Owner失败
- CF95C Volleyball
- Django 模板系统
- nuxt.js实战之引入jquery