博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
替换空格
阅读量:7147 次
发布时间:2019-06-29

本文共 1816 字,大约阅读时间需要 6 分钟。

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 
C++实现
 
1:(新字符串长度为下标)从后往前输出新的字符,如果是空格输出 0 2 %,否则直接输出原字符
2:新字符串长度=输入长度+空格数量*2
    (C语言字符串规定,字符串长度是指从字符串开始,到字符串结束符(\0)为止,所有字符的总数,不包括\0.
       这里的所有字符,同样包括不可见字符,自然包括空格)
1 class Solution { 2 public: 3     void replaceSpace(char *str,int length) { 4  5  6 //遍历一边字符串找出空格的数量 7         if(str==NULL||length<0) 8             return ; 9         int i=0;10         int oldnumber=0;//记录以前的长度11         int replacenumber=0;//记录空格的数量12         while(str[i]!='\0')13             {14                oldnumber++;15                if(str[i]==' ')16                    {17                      replacenumber++;18                    }19                   i++; 20             }21         int newlength=oldnumber+replacenumber*2;//插入后的长度22         if(newlength>length)//如果计算后的长度大于总长度就无法插入23             return ;24         int pOldlength=oldnumber; //注意不要减一因为隐藏个‘\0’也要算里25         int pNewlength=newlength;26         while(pOldlength>=0&&pNewlength>pOldlength)//放字符27             {28               if(str[pOldlength]==' ') //碰到空格就替换29                   {30                      str[pNewlength--]='0';31                      str[pNewlength--]='2';32                      str[pNewlength--]='%';33                      34                   }35                else //不是空格就把pOldlength指向的字符装入pNewlength指向的位置36                {37                     str[pNewlength--]=str[pOldlength];38                    39                }40              pOldlength--; //不管是if还是elsr都要把pOldlength前移41              42            }43         44         45     }46 };

 

 

java实现

1 public class Solution {  2     public String replaceSpace(StringBuffer str) {3           4         return str.toString().replaceAll(" ", "%20");5         }6   }

 

 

 

转载于:https://www.cnblogs.com/Octopus-22/p/9412249.html

你可能感兴趣的文章
前端性能优化--懒加载和预加载
查看>>
图片压缩工具推荐
查看>>
PostgreSQL 优化器代码概览
查看>>
深入浅出任务队列机制,非常浅
查看>>
leetcode380. Insert Delete GetRandom O(1)
查看>>
Angular 响应式表单之表单分组
查看>>
告诉你微信域名被封的原因和防封方案
查看>>
字节跳动的面试感受
查看>>
Web 开发学习笔记(3) --- 申请和部署HTTPS证书
查看>>
力扣(LeetCode)357
查看>>
新手零基础学习Python第一步,搭建开发环境!
查看>>
解锁Spring框架姿势1
查看>>
关于分块思想的个人理解
查看>>
2019前端面试题汇总(主要为Vue)
查看>>
Spring 中获取 request 的几种方法,及其线程安全性分析
查看>>
tcpdump查看Nginx长连接还是短连接
查看>>
做Web前端开发的你必须会这几点!
查看>>
Python2+Selenium入门02-第一个Selenium Python脚本
查看>>
华为云家庭视频监控帮你一起守护家
查看>>
优化体系结构 - 解决多样性数据源
查看>>