zoukankan      html  css  js  c++  java
  • 剑指offer-替换空格

    题目描述

    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
    时间限制:1秒 空间限制:32768K 热度指数:27315
     
    我的思路:将StringBuffer类型转换为String,然后使用replace方法(肤浅了,没有理解到题目要考察的知识点)
     1 class Solution {
     2     public String replaceSpace(StringBuffer str) {
     3         
     4         String string=str.toString();
     5         
     6         if(string!=null){
     7             string=string.replaceAll(" ", "%20");
     8         }        
     9         return string;   
    10         
    11     }
    12 }

    深入探究(replace方法的实现):

    以后补充

    优秀解法:

     1 链接:<a href="https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423">https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423</a>
     2 来源:牛客网
     3 
     4 //思路 
     5   //1:从前往后插入,这样移动·的次数多不建议 
     6   //2:从后往前插入 
     7 
     8   
     9 
    10   class Solution { 
    11   public: 
    12 
    13   void replaceSpace(char *str,int length) { 
    14           //遍历一边字符串找出空格的数量 
    15           if(str==NULL||length<0) 
    16               return ; 
    17           int i=0; 
    18           int oldnumber=0;//记录以前的长度 
    19           int replacenumber=0;//记录空格的数量 
    20           while(str[i]!='') 
    21               { 
    22                  oldnumber++; 
    23                  if(str[i]==' ') 
    24                      { 
    25                        replacenumber++; 
    26                      } 
    27                     i++28               } 
    29           int newlength=oldnumber+replacenumber*2;//插入后的长度 
    30           if(newlength>length)//如果计算后的长度大于总长度就无法插入 
    31               return ; 
    32           int pOldlength=oldnumber; //注意不要减一因为隐藏个‘’也要算里 
    33           int pNewlength=newlength; 
    34          
    35   while(pOldlength>=0&&pNewlength>pOldlength)//放字符 
    36               { 
    37                 if(str[pOldlength]==' ') //碰到空格就替换 
    38                     { 
    39                        str[pNewlength--]='0'; 
    40                        str[pNewlength--]='2'; 
    41                        str[pNewlength--]='%'; 
    42                         
    43                     } 
    44                  else //不是空格就把pOldlength指向的字符装入pNewlength指向的位置 
    45                  { 
    46                       str[pNewlength--]=str[pOldlength]; 
    47                       
    48                  } 
    49                pOldlength--; //不管是if还是elsr都要把pOldlength前移 
    50                 
    51              } 
    52            
    53 
    54   
    55 
    56 
    57   } 
    58   };
  • 相关阅读:
    三级菜单打怪升级,young -> plus -> pro
    Python注释是什么东东
    腾讯云中的mysql镜像数据定时同步到本机数据库
    linux重复命令的简洁化
    快速查询mysql中每个表的数据量
    MGR与MHA
    mysql基础练习
    mongo日常操作备忘
    MongoDB:删除操作
    MongoDB插入数据的3种方法
  • 原文地址:https://www.cnblogs.com/daneres/p/6512100.html
Copyright © 2011-2022 走看看