劍指offer第4題 空格替換

先統計空格數目,然後從後往前處理  時間複雜度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;
	}
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章