替换字符串中的空格为$$$。要求时间复杂度为O(N)

来源:互联网 发布:苹果软件下载大全 编辑:程序博客网 时间:2024/05/17 03:23
#include <iostream>using namespace std;void ReplaceBlank(char string[], int length) //length 为string数组的总容量{    if (string == NULL || length <= 0)          return ;    int originalLength = 0; //字符串string的实际长度    int numberOfBlank = 0;//字符串中空格数    int i = 0;    while (string[i] != '\0')    {        ++originalLength;        if (string[i] == ' ')            ++numberOfBlank;        i++;    }    int newLength = originalLength + numberOfBlank*2; //空格被替换之后的长度    if (newLength > length) //超出数组所能允许的长度        return ;    int indexOfOriginal = originalLength;    int indexOfNew = newLength;    while (indexOfOriginal >= 0 && indexOfOriginal < indexOfNew)    {        if (string[indexOfOriginal] == ' ')        {            string[indexOfNew--] = '$';            string[indexOfNew--] = '$';            string[indexOfNew--] = '$';        }        else        {            string[indexOfNew--] = string[indexOfOriginal];        }        --indexOfOriginal;    }}void test_ReplaceBlank(){    char string[100] = "talk is cheap show me the code";    ReplaceBlank(string, 100);    cout << string << endl;}int main(){    test_ReplaceBlank();}
阅读全文
0 0
原创粉丝点击