• 剑指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--;
    	}
    	
    	
    	
    	
    }
    

      

  • 相关阅读:
    JavaScript的兼容小坑和调试小技巧
    前端jQuery实现瀑布流
    angular常用属性大全
    Eclipse易卡死
    工作反思
    半年回忆
    努力做到
    产品经理如何应对技术的「做不了」这样的问题(转)
    优秀的产品经理我还有多远
    简历技巧
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/11801882.html
Copyright © 2020-2023  润新知