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

    题目描述

    请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     
    思路:
    一个空格替换成‘%’+‘20’,也就是一个字符位替换为两个字符位,所以先统计空格数,计算替换完成后的字符串总长度为多少。
    然后从后往前复制,遇到空格就复制02%
    class Solution {
    public:
        void replaceSpace(char *str,int length) {
            if(str==NULL||length<0)
                return ;
            int orignallength = 0; // 原始长度
            int countofbalnk = 0; //多少个空格
            for(int i=0;str[i]!='';i++){
                orignallength++;
                if(str[i]==' ')
                    countofbalnk++;
            }
            //插入后的长度  每个空格的地方 1->2
            int newlength=orignallength+countofbalnk*2;
    
            //因为要比原来的长  所以从后往前插入对应字符
            //    保证原始的字符还有
            while(orignallength>=0)
            {
                if(str[orignallength]==' ')
                {//每添加一个  就得减一
                    str[newlength--]='0';
                    str[newlength--]='2';
                    str[newlength--]='%';
                }
                else
                {//复制
                    str[newlength]=str[orignallength];
                    newlength--;
                }
                orignallength--;
            }
             
        }
    };
  • 相关阅读:
    Java基础--第二十六天
    Java基础--第二十五天
    Java基础--第二十四天
    Java基础--第二十三天
    Java基础--第二十二天
    Java基础--第二十一天
    Java基础--第二十天
    Java基础--第十九天
    Java基础总结--待续
    docker学习笔记
  • 原文地址:https://www.cnblogs.com/Stephen-Jixing/p/13123938.html
Copyright © 2011-2022 走看看