zoukankan      html  css  js  c++  java
  • 【剑指Offer】替换空格

    题目描述

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

    解法1

    这道题比较简单,就是遍历该字符串每一个字符进行复制,遇到空格就复制成%20。或者你也可以直接用C#自带的Replace函数,那这道题也就完全没有意义了。

    实现代码

    public string replaceSpace(string str)
    {
        string result = "";
        for(int i = 0; i < str.Length; i++)
        {
            if(str[i] == ' ')
            {
                result = result + "%20";
            }
            else
            {
                result = result + str[i];
            }
        }
        return result;
    }
    

    解法2

    解法2相比于解法1,优化的地方仅是针对C#语言,使用string类型字符串,一旦创建就不可修改大小。类似str += ""这样的操作都会创建新的对象而造成额外的内存开销。所以使用StringBuilder可以提升性能。
    优化后效果:

    • 解法1的运行时间为37ms,占用内存3384k
    • 解法2的运行时间为34ms,占用内存3360k

    实现代码

    public string replaceSpaceOptimize(string str)
    {
        System.Text.StringBuilder result = new System.Text.StringBuilder();
        for (int i = 0; i < str.Length; i++)
        {
            if (str[i] == ' ')
            {
                result.Append("%20");
            }
            else
            {
                result.Append(str[i]);
            }
        }
        return result.ToString();
    }

    更多题目的完整描述,AC代码,以及解题思路请参考这里https://github.com/iwiniwin/Algorithm

  • 相关阅读:
    ifdef有大用处
    osgEarth编译
    CyanogenMod 7.1 for Sony Ericsson X8 下载 CM7.1 for 索爱X8下载
    ArcGIS影像配准与空间配准
    ArcGIS Server的切图原理深入
    Arcgis server的rest服务url写法解读
    地图切片公式
    新随笔
    solr的java调用
    配置文件
  • 原文地址:https://www.cnblogs.com/iwiniwin/p/10793656.html
Copyright © 2011-2022 走看看