剑指offer第4题 空格替换

来源:互联网 发布:雪山白凤凰知乎 编辑:程序博客网 时间:2024/05/19 17:51

先统计空格数目,然后从后往前处理  时间复杂度O(n)

//将给定字符串中的空格替换成%20#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;const int Max_Size = 500;char str[Max_Size];int main(){while(cin.getline(str,Max_Size)){int count = 0,i = 0,j = 0,size = strlen(str);while( i < size){if(str[i] == ' ')count++;++i;}i = size + 2 * count -1;j = size - 1;while(i >= 0 && j >= 0){if(str[j] != ' '){str[i] = str[j];--i;--j;}else{str[i] = '0';str[i-1] = '2';str[i - 2] = '%';--j;i -= 3;}}cout<<str<<endl;}}


 

原创粉丝点击