替换空格

  1. 题目描述
    1. 解题思路:

题目描述

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

解题思路:

  • 借助两个游标,采用先统计总共的空间,
  • 然后进行扫描,若是空格,则插入%20,不是就复制原始字符
  • 空间:O(1),时间:O(n)
class Solution {
public:
    void replaceSpace(char *str,int length) {
        int count = 0;
        for (int i = 0; i < length;i++){
            if (str[i] == ' '){
                count++;
            }
        }
        char *p1 = (str + length);
        char *p2 = (str + length + 2*count);
        for (;p1>=str;p1--){
            if (*p1 == ' '){
                *p2-- = '0';
                *p2-- = '2';
                *p2-- = '%';
            } else{
                *p2-- = *p1;
            }
        }
    }
};

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

💰

Title:替换空格

Count:176

Author:攀登

Created At:2019-12-26, 23:12:31

Updated At:2024-06-15, 15:53:35

Url:http://jiafeimao-gjf.github.io/2019/12/26/sword-%E6%9B%BF%E6%8D%A2%E7%A9%BA%E6%A0%BC/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation