Idea: Esta
pregunta es contar el número de espacios y luego reemplazarlo con la longitud total de la cadena de% 20, usando punteros dobles. Simplemente comience desde atrás y avance hacia adelante, según el código.
Código:
class Solution {
public:
string replaceSpace(string s) {
int tmp = 0;
for(auto &i:s){
if(i==' ') ++tmp;
}
int len = s.size() + tmp*2;
int i = s.size()-1;
int j = len-1;
s.resize(len);
while(i>=0){
if(s[i]!=' '){
s[j]=s[i];
--i;
--j;
}else{
--i;
s[j--] ='0';
s[j--] ='2';
s[j--] ='%';
}
}
s[len] = '\0';
return s;
}
};