zoukankan      html  css  js  c++  java
  • 替换空格

    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
    一开始的思路便是从开头扫到右空格就替换,但这样做,空格后的每个字符串都要推后,这样时间复杂度就是O(n2)。
    所以我们可以换一种思路。我们可以从前扫到后找到空格的数目,然后确定下来替换后长度为多少,然后从结尾开始扫,遇到空格就替换。时间复杂度为O(n)。
    下面放实现的代码

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
        char s[100];
        cin.getline(s,100);
        int m=strlen(s);
        int count=0;
        for(int i=0;i<m;i++){
            if(s[i]==' ')
            count++;
        }
        char s1[m+2*count];
        int len=m+2*count-1;
        for(int i=m-1;i>=0;i--){
            if(s[i]!=' ')
                s1[len--]=s[i];
            else{
                s1[len--]='0';
                s1[len--]='2';
                s1[len--]='%';
            }
        }
        printf("%s",s1);
    }
    
  • 相关阅读:
    Go笔记
    EFCore CodeFirst操作MySQL
    基于NET Core简单操作Kafka
    NETCore2.2/3.0+使用带有权限验证的Swagger
    Net操作RabbitMQ
    Mysql报错问题汇总
    GDSM自动化部署shell脚本
    NET操作Redis
    ViewState原理
    使用jsonp跨域请求
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580098.html
Copyright © 2011-2022 走看看