题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
python3实现:
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
if s is None or len(s)==0:
return ""
result = []
for ch in s:
if ch == ' ':
result.append("%20")
else:
result.append(ch)
return "".join(result)
c++实现:
//length为牛客系统规定字符串输出的最大长度,固定为一个常数
class Solution {
public:
//直接原地修改原字符串
void replaceSpace(char *str,int length) {
if(str==NULL||length<=0)
return;
//统计空格数
int cntOfSpaces = 0, oldLen = 0;
for(int i=0; str[i]!='\0'; i++){
oldLen += 1;
if(str[i]==' ')
cntOfSpaces += 1;
}
int newLen = oldLen+cntOfSpaces*2;
if(newLen>length)//不加这一句也能ac
return;
int idx = newLen, i = oldLen;//不是newLen-1,因为还得算上最后的'\0'
while(i>=0){
if(str[i]==' '){
str[idx--]='0';
str[idx--]='2';
str[idx--]='%';
}else{
str[idx--]=str[i];
}
i--;
}
}
};