python空格替换

本文介绍了《剑指Offer》中关于替换空格的问题,讨论了C语言的两种解题思路,包括动态扩展数组和从前后两个方向进行移位替换。接着提到了Python的解决方案,利用Python的字符串插入功能简化了处理过程。
摘要由CSDN通过智能技术生成

记剑指offer05替换空格

问题描述在这里插入图片描述
题目意义
在编程中,如果URL参数(是Internet上用来描述信息资源的字符串)中含有特殊字符,使服务器端无法正确识别,则需要将特殊字符进行转换,转换规则是在“%”后面加上ASCII码的两位十六进制数表示,以空格为例,空格的ASCII码是32,换为十六进制表示是0x20,所以空格需要被替换为“%20”。
解题思路:
一、. C
首先题目要求将一个字符替换为三个字符,每替换一个空格需要新增两个字符大小的空间,替换之后的字符串长度会增加,所以可想到两种方法。
1.将原始字符串定义足够长,可在原始数组中进行移位操作。考虑极限情况,如果原数组中全是空格,替换后的数组大小,则需要为以前的三倍,定义数组长度为字符串长度的三倍。
2.首先遍历原始字符串数组,记录空格数和数组长度,重新定义一个数组,在新的数组上进行移位赋值操作。
其次在移位时需要考虑对原始数组的遍历方向,可采用从前往后或者从后向前。下面分别分析这两种移位方法。
1.从前向后
如图所示,第一行阴影部分表示遇到第一个空格时,需要进行移位的位置,第二行的阴影表示,遇到第二个空格时,需要进行移位的位置,加黑的部分表示需要进行两次移位的位置。
在这里插入图片描述

2.从后往前
在这里插入图片描述
不管使用哪种方法进行移位的时候都要记录原始数组的长度和空格数量,需要动态分配数组空间,扩展数组大小至少为空格数目的两倍。

需要两个数组,先计算出新数组的长度,建立新数组,同时遍历两个数组,在空格位置进行替换,其余位置直接赋值给新数组,直到遍历完原始数组。

char* replaceSpace(char* s){
   
    if(s==NULL){
   
    return NULL;
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值