利用 %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--];
    }

合并数组

时间: 2024-10-14 02:09:55

利用 %20 替换 空格的相关文章

实现函数,用字符串&quot;%20&quot;替换空格

题目及要求: 请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"we are happy.",则输出"we%20are%20happy.". 思考过程:首先将定义一个指针,用于保存"%20",然后定义一个数组,用于接收从键盘上输入的字符串,边输入边判断,如果是空格,则替换,直至接收完毕. 程序: /* *实现一个函数,把字符串中的每个空格替换成"%20". *例如输入"we are 

编程(用%20替换空格)

题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 class Solution { 6 public: 7 void replaceSpace(char *str,int length); 8 }; 9 10 v

替换空格--《剑指offer》

如题所示,题目很简单,替换空格,将字符串中的空格替换为%20: 即"we are happy"替换成"we%20are%20happy": 如果每当我们遇到一个空格就将字符串向后平移两位,这样复杂度就是O(n2)了,这样的方法是不可取的,按照作者的来说,offer已不足拿到了: 而当我们反向从字符串末尾开始遍历,复杂度仅为O(n),当然前提的是该字符串有足够空间,否则替换会失败. 了解到思想之后程序也就比较简单了,发现自己的与作者的写的也比较类似,就此贴上了...

4. 替换空格(字符数组)

题目描述 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为"We Are Happy."则经过替换之后的字符串为"We%20Are%20Happy." 解析 直观的想法是,新建一个数组,逐个复制,遇到空格时,写入%20,但这需要占用额外空间. 如果我们顺序的遍历字符串,当遇到空格时,用%20替换空格,这将覆盖掉空格后面的字符 如果覆盖前,后移剩余字符串,那么移动的时间复杂度为O(n^2). 采用从后往前复制字符的方法.首先统

java中得到classpath和当前类的绝对路径的一些方法(路径中的%20&quot;进行替换空格)

原网址:http://blog.csdn.net/shendl/article/details/1427475 (注意:利用下面方式得到路径,如果路径中有空格字符, 那么会有"%20"进行替换, 所以得到之后再将"%20"替换成空格) 下面是一些得到classpath和当前类的绝对路径的一些方法.你可能需要使用其中的一些方法来得到你需要的资源的绝对路径. 1,FileTest.class.getResource(""):      FileTes

C++用%20替换字符串中的空格(O(n)的时间效率)

#include <iostream> #include <malloc.h> #include <string.h> using namespace std; //将字符串中的空格用%20替换. void Grial(char *str) { if(str==NULL)return ; char *p = str; char *q = NULL; char buf[strlen(str)+1]; int count = 0;//计数空格数. while(*p!='\0

【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void replace(char *src) { assert(src); int OldLen = 0; //原字符串长度 int NewLen = 0; //新字符串长度 int BlackNum = 0; //空格数量 int NewBack = 0; //新字符串尾部 int OldBack = 0; //原

【c语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

// 字符串替换空格:请实现一个函数,把字符串中的每个空格替换成"%20". // 例如输入"we are happy.",则输出"we%20are%20happy." #include <stdio.h> #include <assert.h> char* replace(char* p) { char* ret = p; int num = 0; int oldlen = 0; int newlen = 0; char

替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are best ”,则输出we%20are%20 best 此题的实际意义是在网络编程中,如果URL中含有特殊的字符如空格.‘#’等可能导致服务器无法获取正常的参数,我们需要将特殊字符转换成服务器可以识别的字符.准换的规则是“%”加上ASCLL的两位十六制表示,如空格的ASCLL值是32则十六进制为0x20 void replaceBlank(char *src,int length) { int oriLength