利用 %20 替换 空格

将字符串中的空格都替换为 %20 ( 时间复杂度为O(N)的解法 )

void ReplaceBlankSpace(char* arr)
    {
        if (arr)
        {
            int count = 0;
            int lenth = strlen(arr);
            for (int i = 0; i < lenth;++i)
            if (arr[i] == ' ')
                count++;
            char*before = arr+lenth, *behind = arr+lenth+2*count;
            while (before != behind)
            {
                if (*before != ' ')
                {
                    *behind-- = *before--;
                }                
                else
                {
                    *behind-- = '0';
                    *behind-- = '2';
                    *behind-- = '%';
                    before--;
                }
            }
        }
    }
替换空格

 

合并有序数组( 时间复杂为O(N),空间复杂度为O(1)的解法)

void ArrayMerage(vector<int>& Vector1, vector<int>& Vector2)
    {
        int index_1_before = Vector1.size() - 1, index_2 = Vector2.size() - 1;
        int sum = Vector1.size() + Vector2.size();
        int index_1_behind = sum - 1;
        Vector1.resize(sum);
        while (index_2 >= 0 && index_1_before >= 0)

            Vector1[index_1_behind--] = Vector1[index_1_before] > Vector2[index_2] ? \
            Vector1[index_1_before--] : Vector2[index_2--];
        while (index_2 >= 0)
            Vector1[index_1_behind--] = Vector2[index_2--];
    }
合并数组

 

posted @ 2016-07-05 20:13  _in_the_way  阅读(1337)  评论(0编辑  收藏  举报