先计算空格数,然后从后往前将空格替换
class Solution { public: void replaceSpace(char *str,int length) { int num = 0; int j = 0; for(int i=0; i<length; i++) { if(str[i] == ' ') num++; } for(int i=length-1; i>=0; i--) { if(str[i] != ' ') { str[length+2*num-1-j] = str[i]; j++; } else { str[length+2*num-1-j] = '0'; str[length+2*num-2-j] = '2'; str[length+2*num-3-j] = '%'; j = j+3; } } } };