zoukankan      html  css  js  c++  java
  • 2、替换空格------------>剑指offer系列

    题目

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

    代码

    1.直接用空格将字符串切割成数组,再用20%进行连接。

    function replaceSpace(str)
    {
        return str.split(' ').join('%20');
    }

    2.用正则表达式找到所有空格依次替换

    function replaceSpace(str)
    {
        return str.replace(/s/g,'%20');
    }
    或者
    function replaceSpace(str)
    {
        return str.replace(/[' ']/g,'%20')
    }

    拓展

    允许出现多个空格,多个空格用一个20%替换:

    用正则表达式找到连续空格进行替换

    function replaceSpace(str)
    {
        return str.replace(/s+/g,'%20');
    }

     C++

     

    void ReplaceBlank(char str[], int length)
    {
        if(str == nullptr && length <= 0)
            return;
    
        /*originalLength字符串实际长度*/
        int originalLength = 0;
        int numberOfBlank = 0;
        int i = 0;
        while(str[i] != '')
        {
            ++ originalLength;
    
            if(str[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(str[indexOfOriginal] == ' ')
            {
                str[indexOfNew --] = '0';
                str[indexOfNew --] = '2';
                str[indexOfNew --] = '%';
            }
            else
            {
                str[indexOfNew --] = str[indexOfOriginal];
            }
    
            -- indexOfOriginal;
        }
    }
  • 相关阅读:
    单例模型
    数据库7 索引
    数据库6.高级
    数据库5 不想改
    绑定方法与非绑定方法 反射 内置方法
    组合 封装 多态
    面向对象之继承
    面向过程编程
    logging hashlib 模块
    pickle json xml shelve configparser模块
  • 原文地址:https://www.cnblogs.com/QianDingwei/p/10890486.html
Copyright © 2011-2022 走看看