剑指offer——空格替换
来源:互联网 发布:四维星软件多少钱 编辑:程序博客网 时间:2024/06/05 17:22
题目: 请实现一个函数,把字符串的每个空格替换成%20,例如输入“We are happy”,则输出“We%20are%20happy”。
分析:我们首先能想到的是最简单最直接的方法就是遍历这个字符串数组,判断是否是空格,如果是空格,则进行替换;想法则继续遍历。但是这种方法有一个最大的弊端,e就是这种算法的时间复杂度相当高,是O(n^2),这样的算法是不可取的,虽然简单,但是时间复杂度如此大,是不利于整个程序的进行的。
所以我们将采用另一种方法进行分析,替换,下面举例说明插入情况:
public static void ReplaceBlank(char string[],int length){if(string==null||length<=0){return;}int orginblank=0;/*orginblank为字符串数组的初始长度*/int numblank=0;/*numblank为空白格的个数*/for(int i=0;string[i]!='\0';i++){orginblank++;if(string[i]==' '){numblank++;}}/*下面展示替换空格后的长度*/int newlength=orginblank+numblank*2;if(newlength>length){return;}int j=newlength;for(int i=length;i>=0;i--){if(string[i]!=' '){string[j--]=string[i];}else{string[j--]='0';string[j--]='2';string[j--]='%';}}}1、我们应该定义orgionblank和numblank,作为软件的起始大小还有空格数
2、定义newlength,是替换成%20后的数组长度,起始的空格有一个占位,现在再添加两个位置即可完成插入操作。
3、为了避免时间复杂度过高,我们选择从后向前进行遍历,如果不是空格将数组下标移动到该位置,是数组进行替换
阅读全文
0 0
- 剑指offer—替换空格
- 剑指offer—替换空格
- 《剑指offer》——替换空格
- 《剑指offer》——替换空格
- 剑指offer——替换空格 C++
- 剑指Offer——替换空格
- 《剑指offer》——替换空格
- 剑指offer——字符串空格替换
- 剑指Offer——替换空格
- 替换空格——剑指offer
- 剑指offer —— 替换空格
- 剑指offer——替换空格
- 剑指offer——替换空格
- 剑指offer——空格替换
- 剑指offer——替换空格
- 剑指offer——替换空格
- 剑指offer——2.替换空格
- 剑指offer刷题—替换空格
- 7 款顶级的开源 Web 分析软件推荐
- Android 使用Bundle传递对象
- LRU(Least Recently Used)
- 最常见的 20 个 jQuery 面试问题及答案
- for...in用于遍历数组或者对象的属性
- 剑指offer——空格替换
- Android 动画 Tweened Animation 之 RotateAnimation钟摆动画
- 判断js中的数据类型的几种方法
- Android事件分发总结
- AE 模板 网址
- js双目运算符"&&"和"||"的运算方向
- 4移位运算符
- 不可变类
- Matlab JPEG详细介绍