class Solution {
public:
string replaceSpace(string s) {
int l1 = s.size();
int count = 0;
for(int i = 0; i<l1; i++){
if(s[i] == ' '){
count++;//统计空格个数
}
}
s.resize(l1 + 2 * count);//按空格个数来增加s长度
int l2 = s.size();
for(int i = l1 - 1,j = l2 -1; i < j; i--,j--){//替换空格
if(s[i] == ' '){
s[j] = '0';
s[--j] = '2';
s[--j] = '%';
}else{
s[j] = s[i];
}
}
return s;
}
};
Go:
// 遍历添加
func replaceSpace(s string) string {
b := []byte(s)
results := make([]byte,0)
for i := 0; i < len(b); i++{
if b[i] == ' '{
results = append(results,[]byte("%20")...)
}else{
results = append(results,b[i])
}
}
return string(results)
}
解2:
// 遍历添加
func replaceSpace(s string) string {
b := []byte(s)
length := len(b)
count := 0
for _,v := range b{
if v == ' '{
count++
}
}
resizeCount := count * 2
tmp := make([]byte,resizeCount)
b = append(b,tmp...)
i := length-1
j := len(b)-1
for i >= 0 {
if b[i] != ' '{
b[j] = b[i]
i--
j--
}else{
b[j] = '0'
b[j-1] = '2'
b[j-2] = '%'
i--
j -= 3
}
}
return string(b)
}