美文网首页
面试题5:替换空格

面试题5:替换空格

作者: 潘雪雯 | 来源:发表于2020-05-09 22:18 被阅读0次

题目

实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We%20are%20happy.”。

解题思路

  1. 考虑字符串是否可以覆盖,并且字符串中是否留有足够多的空间。
  2. 定义两个数组索引下标。首先遍历字符串计算出空格的数量,然后计算出替换后字符串的长度newlen。
    3)这样原长度为len,替换后字符串长度为newlen。进一步定义两个数组索引下标indexOrig和indexNew分别对应原字符串尾部和新字符串尾部
    4)让这两个索引下标向左移动,当indexOrig遇到空格时,indexNew对应的字符串位置插入“%20”。
  3. 结束的标志:当原索引下标为0时遍历结束


    image.png

代码

  • 细节
  1. 因为这个地方的字符串长度是变化的使用char类型比较方便,故不能使用string类型。
  2. 在没有返回值的情况下,修改str字符串中的值的方法就是指针。
class Solution{
  public:
    void replaceBlank(char* str,int len)
    {
        if(str == NULL)
        {
            return ;
        }
        //int len = str.size();
        int blankNum = 0;
        int *p;
        for(int i = 0; i< len;i++)
        {
            if(str[i] == ' ')
            {
                blankNum++;
            }
        }
        int newLen = len + 2*blankNum;;
        int indexOrig = len;
        int indexNew  = newLen;
        while(indexOrig >=0 && indexNew > indexOrig)
        {
            if(str[indexOrig] == ' ')
            {
                str[indexNew--]='0';
                str[indexNew--]='2';
                str[indexNew--]='%';
            }
            else
            {
                str[indexNew--] = str[indexOrig];
            }
            --indexOrig;
        }
    }
};

完整代码见Github

相关文章

  • 替换空格

    《剑指offer》面试题5:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“we...

  • 面试题5: 替换空格

    思路:对于C++要从后向前替换,java好像 从前向后从后向前都一样 相关题目:合并两个有序数组,已知A1有足够大...

  • 面试题5:【替换空格】

    【题目描述】请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过...

  • 面试题5:替换空格

    请实现一个函数,把字符串中的每个空格替换成"%20"。 解析:从后往前替换。首先计算出需要的容量,然后从最后一位开...

  • 面试题5:替换空格

    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字...

  • 面试题5:替换空格

    题目 实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We%...

  • 面试题5:替换空格

    题目一 实现一个函数,把字符串中的每个空格替换成"%20".解法一:朴素思想,从前到后扫描,遇到空格首先把后面的内...

  • 面试题5:替换空格

    题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We...

  • 面试题5:替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经...

  • 面试题5:替换空格

    题意:请实现一个函数,把字符串中的每个空格替换成"%20"。 算法:双指针扫描 思路:1)遍历原数组,并根据空格个...

网友评论

      本文标题:面试题5:替换空格

      本文链接:https://www.haomeiwen.com/subject/tbblnhtx.html