题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
java实现
public class Solution {
public String replaceSpace(StringBuffer str) {
if(str==null||str.length()<0)//边界条件
return null;
StringBuffer newstr=new StringBuffer();
for(int i=0;i<str.length();i++)//遍历字符串
{
if(str.charAt(i)==' ')//如果字符串中有空格,则使用append()加入要替换的东西
{
newstr.append('%');
newstr.append('2');
newstr.append('0');
}
else//否则将字符串按字符加入newstr中
newstr.append(str.charAt(i));
}
return newstr.toString();
}
}
C++实现
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str==NULL||length<=0)//边界条件
return;
int originalLength=0;//原始长度
int numberOfBlank=0;//空格数量
int i=0;
while(str[i]!='\0')//遍历字符串
{
++originalLength;
if(str[i]==' ')//如果遇到空格,空格数加一
++numberOfBlank;
++i;
}
int newLength=originalLength+numberOfBlank*2;//替换后新的字符串长度
int indexOfOriginal=originalLength;//原始字符串最后一位下标
int indexOfNew=newLength;//替换后新字符串最后一位下标
while(indexOfOriginal>=0&&indexOfNew>indexOfOriginal)//替换
{
if(str[indexOfOriginal]==' ')
{
str[indexOfNew--]='0';
str[indexOfNew--]='2';
str[indexOfNew--]='%';
}
else
str[indexOfNew--]=str[indexOfOriginal];
--indexOfOriginal;
}
}
};
python实现
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
ls=s.split(' ')#按空格分割
return '%20'.join(ls)#将要替换的通过join()加入ls
# write code here