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

面试题5:替换空格

作者: hxy159 | 来源:发表于2019-10-10 11:22 被阅读0次

题意:请实现一个函数,把字符串中的每个空格替换成"%20"。

算法:双指针扫描

思路:1)遍历原数组,并根据空格个数求出最终的字符串长度
2)使用两个指针,一个指针i指向原字符串末尾,另一个j指向最终字符串末尾
3)两个指针都从后往前遍历,i遍历到空格时,指针j依次填充'0','2','%'

时间复杂度:O(n)
空间复杂度:O(1)

string replaceSpaces(string &str) {
    int new_length = 0;
    for(int i = 0;i < str.size();i ++)
    {
        if(str[i] == ' ')
            new_length += 3;
        else new_length += 1;
    }
    int i = str.size() - 1, j = new_length - 1;
    // 重新设置数组长度
    str.resize(new_length);

    while(i >= 0 && j >= 0)
    {
        if(str[i] == ' ')
        {
            str[j --] = '0';
            str[j --] = '2';
            str[j --] = '%';
        }
        else str[j --] = str[i];
        i --;
    }
    return str;
}

相关文章

  • 替换空格

    《剑指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/gzuopctx.html