美文网首页剑指offer程序员
剑指offer 替换空格

剑指offer 替换空格

作者: 云胡同学 | 来源:发表于2017-10-21 16:52 被阅读0次

题目描述

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

思路

从头到尾扫描字符串,每次碰到空格字符后,将之后的字符向后移动两个位置,然后再把%20填入进去。时间复杂度是
n^2,复杂度太高。

  • 遍历一次字符串,统计空格的总数,计算出替换后字符串总长度。
  • 从字符串后面开始复制和替换,首先准备两个指针,p1,p2,p1指向原始字符串末尾,p2指向替换后字符串末尾,p1指向的字符不为空,复制到p2所在的位置,之后两者向前移动一个位置。
  • 为空时,p2插入字符串%20,向前移动三个位置,p1向前移动一个位置,直到p1p2指向同一个位置或者p1遍历了所有的字符。

代码

class Solution {
public:
    void replaceSpace(char *str,int length) {
        int i, pastlength = 0, afterlength, k, spacelength = 0;
        i = 0;
        while(str[i] != '\0')
        {
            pastlength++;//替换前长度
            if(str[i] == ' ')
                spacelength++;
            i++;
        }
        afterlength = pastlength + spacelength * 2; //替换之后字符串的长度
        if(afterlength>length)  
            return;  
        int j=afterlength;  
        for(i=pastlength;i>=0 && j > i;i--)  
        {  
            if(str[i]!=' ')  
                str[j--]=str[i];  
            else  
            {  
                str[j--]='0';  
                str[j--]='2';  
                str[j--]='%';  
            }  
        }  
    }
};

相关文章

  • [剑指offer] 替换空格

    本文首发于我的个人博客:尾尾部落 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符...

  • 剑指offer - 替换空格

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

  • 《剑指offer》替换空格

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

  • 剑指offer:替换空格

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

  • 剑指offer 替换空格

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

  • [剑指Offer]替换空格

    本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02...

  • 【剑指offer】- 替换空格

    1、题目描述 请实现一个函数,把字符串中的每个空格替换成"%20"。 你可以假定输入字符串的长度最大是1000。注...

  • 剑指 offer ---替换空格

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

  • Day12 替换空格+两个链表的第一个公共节点+第一个只出现一次

    剑指 Offer 05. 替换空格(简单)[https://leetcode-cn.com/problems/ti...

  • 面试题5

    剑指 Offer 05. 替换空格[https://leetcode-cn.com/problems/ti-hua...

网友评论

    本文标题:剑指offer 替换空格

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