• 剑指office--------替换空格


    题目描述

    请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     
     
     
     思路1:(不开辟新空间)
     
     1 class Solution {
     2 public:
     3     void replaceSpace(char *str,int length) {
     4         if (str== nullptr||length<=0)    return;
     5         int i=0,str_len=0,blank_count=0;
     6         while (str[i]!=''){
     7             str_len++;
     8             if (str[i]==' ')    blank_count++;
     9             i++;
    10         }
    11         int p=str_len+2*blank_count,q=str_len;
    12         while (q>=0){
    13             if (str[q]==' '){
    14                 str[p--]='0';
    15                 str[p--]='2';
    16                 str[p--]='%';
    17             }
    18             else{
    19                 str[p--]=str[q];
    20             }
    21             q--;
    22         }
    23     }
    24 };

    思路:

    时间复杂度O(n)

    空间复杂度O(1)

    计算出多少个空格,得到目标字符串的长度  (原字符串长度+空格数*2),然后从尾向头遍历即可。

    思路2:(借用辅助数组)

  • 相关阅读:
    eas之Uuid和BOSUuid 区别
    BOS工具之BOS应用框架
    eas之EAS手工打包及快速部署工具
    S-HR体验中心
    wafII笔记
    eas之MrpUI
    S-HR快速查看shr日志
    S-HR二开基础
    linux安装mysql
    linux安装tomcat
  • 原文地址:https://www.cnblogs.com/q1204675546/p/13374548.html
Copyright © 2020-2023  润新知