[剑指offer]替换空格
来源:互联网 发布:centos yum nmap 编辑:程序博客网 时间:2024/06/04 19:41
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
分析:把空格替换为“%20”,如果不增加长度只是替换成另一个字符是很方便的,这里增加了长度,那么可以先计算出替换完后字符串的总长度,直接定位到最后的位置,另一个指针指向原字符串最后一个位置,从后往前扫描,遇到空格则写入%20.
注意传入的那个length不是字符串的长度,是字符串能够使用的最大长度。
C++:
class Solution {public:void replaceSpace(char *str,int length) {if(str==nullptr||length<=0){ return; } int blank=0; int i=0; int orilength=0; while(str[i]!='\0'){ orilength++; if(str[i]==' '){ blank++; } i++; } int newlength=orilength+blank*2; if(newlength>length){ return; } int oriindex=orilength; int newindex=newlength; while(oriindex>=0&&newindex>oriindex){ if(str[oriindex]==' '){ str[newindex--]='0'; str[newindex--]='2'; str[newindex--]='%'; } else{ str[newindex--]=str[oriindex]; } oriindex--; }}};
python:
# -*- coding:utf-8 -*-class Solution: # s 源字符串 def replaceSpace(self, s): # write code here return s.replace(' ','%20')
0 0
- [剑指offer]替换空格
- [剑指offer]替换空格
- 剑指offer:替换空格
- 替换空格--《剑指offer》
- 剑指Offer:替换空格
- 【剑指offer】替换空格
- 《剑指Offer》--替换空格
- 剑指offer--替换空格
- 【剑指offer】替换空格
- 【剑指offer】空格替换
- 剑指offer-替换空格
- 剑指offer:替换空格
- [剑指offer]替换空格
- 《剑指offer》替换空格
- 剑指offer:替换空格
- 【剑指Offer】替换空格
- 【剑指offer】-替换空格
- 剑指offer 替换空格
- mysql order by内排序
- 配置和使用VS2013 MFC的若干问题
- ERROR:Simulator:861 - Failed to link the design
- 58同城高性能移动PUSH推送平台架构演进之路
- 归并排序
- [剑指offer]替换空格
- CAS :compare and swap非阻塞同步算法
- 使用for循环定义一个二维数组;(初学者)
- 两个不同模块中的jsp传值, 一个jsp页面中打开新的jsp页面, 新的jsp页面返回值给本jsp页面
- peachFuzzer error :Enable PageHeap
- transform函数转换字符串string的大小写
- C语言06指针进阶
- Apk加固
- Unity3D 学习日记(四)生成不重复的随机数