用“%20”取代字符串中空格的时间复杂度为O(n)的算法
2013-10-16 23:09
239 查看
/*length 为字符串数组string的总容量*/ void ReplaceBlank(char stringp[],int length) { if(string==NULL &&length<=0) return; /*originalLength 为字符串string的实际长度*/ int originalLength=0; int numberOfBlank=0; int i=0; while(string[i] !='\0') { ++originalLength; if(string[i]==' ') ++numberOfBlank; ++i; } /*newlength 为把空格替换成%20之后的长度*/ int newLength=originalLength+numberOfBlank*2; if(newLength >length) return; int indexOfOriginal = originalLength; int indexOfNe = newLength; while(indexOfOriginal >=0 && indexOfNew >indexOfOriginal) { if(string[indexOfOriginal] ==' ') { string[indexOfNew --] ='0'; string[indexOfNew --] ='2'; string[indexOfNew --] ='%'; } else { string[indexOfNew --]=string[indexOfOriginal]; } --indexOfOriginal; } }
相关文章推荐
- [算法] C# Revert 单词反转字符串[低时间复杂度]
- 字符串中空格替换为%20(算法)
- (科大讯飞)删除字符串中的连续空格(只保留一个),O(n)时间复杂度,O(1)空间复杂度
- 删除字符串中的连续空格(只保留一个),O(n)时间复杂度,O(1)空间复杂度
- C++用%20替换字符串中的空格(O(n)的时间效率)
- 【我的算法日记】请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。
- 用指定字符串(如%20)替换空格 时间复杂度为O(n)
- 分析算法的时间复杂度
- 【字符串】查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- 整理:算法的时间空间复杂度--面向对象的特征--linux进程状态--设计模式
- 算法 时间复杂度|空间复杂度
- 算法的时间复杂度和空间复杂度-总…
- 请实现一个函数,把字符串中的每个空格替换成“%20”,例如输入 “We are Happly。” 则输出“we%20are%20happy。”
- 算法的时间复杂度
- 几个时间复杂度O(logN)的算法
- 《大话数据结构》第2章 算法基础 2.9 算法的时间复杂度
- 算法的时间复杂度和空间复杂度计算
- 算法的时间复杂度和空间复杂度-总结
- 第2周项目3-体验复杂度(1)两种排序算法运行时间
- 温故知新 算法的时间复杂度