请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
自己想了一下,感觉没什么思路,就暴力扫描一遍,遇到空格flag记下来,然后把原来的字符串一个一个字符的贴上去,看C++代码
class Solution {
public:
void replaceSpace(char *str,int length) {
bool flag[1000001];
memset(flag,0,sizeof(flag));
for(int i=0;i<length;i++)
if(str[i]==' ')
flag[i]=1;
char str2[1000001];
strcpy(str2,str);
int fla=0;
for(int i=0;i<length;i++){
if(!flag[i])
{
str[fla]=str2[i];
fla++;
}
else
{
str[fla]='%';
fla++;
str[fla]='2';
fla++;
str[fla]='0';
fla++;
}
}
}
};
如果用java应该很简单,使用StringBuffer里面的自带函数可以实现。
public class Solution {
public String replaceSpace(StringBuffer str) {
if(str==null){
return null;
}
StringBuilder newStr = new StringBuilder();
for(int i=0;i<str.length();i++){
if(str.charAt(i)==' '){
newStr.append('%');
newStr.append('2');
newStr.append('0');
}else{
newStr.append(str.charAt(i));
}
}
return newStr.toString();
}
}