zoukankan      html  css  js  c++  java
  • 剑指offer-面试题5-替换空格-字符串

    /*
    题目:
    	请实现一个函数,把字符串中的每个空格替换成'%20'.
    	例如输入“We are happy",则输出 ”We%20are%happy"。
    */
    /*
    结题思路:
    	考虑给定数组内存足够,且不能开辟新的数组的情况。
    	使用两个指针,从后往前复制。
    	注意数组最后一个字符为''。
    */
    void replaceBlank(char str[],int length){
    	if(str == null || length <= 0){
    		return;
    	}
    	int blankNum = 0;
    	int index = 0;
    	int originLength = 0;
    	while(str[index] !=''){
    		if(str[index] == ' '){
    			blankNum++;
    		}
    		index++;
    		originLength++;
    	}
    	
    	int newLength = originLength + 2 * blankNum;
    	if(length < newLength) return;
    	int indexOfOrigin = originLength;
    	int indexOfNew = newLength;
    	while(indexOfOrigin < indexOfNew && indexOfOrigin >= 0){//标准答案加了indexOfOrigin >= 0 ,不明白意义
    		if(str[indexOfOrigin] != ' '){
    			str[indexOfNew--] = str[indexOfOrigin];
    		}else{
    			str[indexOfNew--] = '0';
    			str[indexOfNew--] = '2';
    			str[indexOfNew--] = '%';
    		}
    		indexOfOrigin--;
    	}
    	
    	
    	
    	
    }
    

      

  • 相关阅读:
    【洛谷习题】公路修建
    priority_queue用法简记
    【洛谷习题】无线通讯网
    【SCOI2005】繁忙的都市
    第四周 3.20-3.26
    第三周 3.13-3.19
    第二周 3.6-3.12
    第一周 2.28-3.5
    第六周 2.21-2.27
    2018湘潭邀请赛 AFK题解 其他待补...
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/11801882.html
Copyright © 2011-2022 走看看