zoukankan      html  css  js  c++  java
  • 面试题4:替换空格

    题目描述

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

    题目分析

    剑指Offer(纪念版)P44

    代码实现

    时间复杂度为O(n)的解法:

    /*length 为字符数组string的总容量*/
    void ReplaceBlank(char string[], int length)
    {
        if(string == NULL && length <= 0)
            return;
    
        /*originalLength 为字符串string的实际长度*/
        int originalLength = 0;
        int numberOfBlank = 0;
        int i = 0;
        while(string[i] != '')
        {
            ++ originalLength;
    
            if(string[i] == ' ')
                ++ numberOfBlank;
    
            ++ i;
        }
    
        /*newLength 为把空格替换成'%20'之后的长度*/
        int newLength = originalLength + numberOfBlank * 2;
        if(newLength > length)
            return;
    
        int indexOfOriginal = originalLength;
        int indexOfNew = newLength;
        while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal)
        {
            if(string[indexOfOriginal] == ' ')
            {
                string[indexOfNew --] = '0';
                string[indexOfNew --] = '2';
                string[indexOfNew --] = '%';
            }
            else
            {
                string[indexOfNew --] = string[indexOfOriginal];
            }
    
            -- indexOfOriginal;
        }
    }
    

      

  • 相关阅读:
    数据库插入
    c#里面调用python
    抓取最好大学网
    selenium抓取慕课课程
    excel合并
    网页抓取
    pyinstaller打包报错
    获取微信联系人
    c#部分类
    C#只读属性
  • 原文地址:https://www.cnblogs.com/xwz0528/p/4830564.html
Copyright © 2011-2022 走看看