替换空格---剑指Offer
替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:
- 查找到所有空格的位置
- 将空格替换成相应的字符串
提供API说明:
indexOf(String str ,int fromIndex):
- 参数:
- str - 要搜索的子字符串。
- fromIndex - 开始搜索的索引位置。
返回:
指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
substring(index beginIndex ,int endIndex):
- 参数:
- beginIndex - 起始索引(包括)。
- endIndex - 结束索引(不包括)。
- 返回:
- 指定的子字符串。
- 抛出:
- IndexOutOfBoundsException - 如果 beginIndex 为负,或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex。
代码如下:
public class Solution {public String replaceSpace(StringBuffer str) {//所要的结果集String result = new String();//子串裁剪从0开始int start = 0;int end;//API的indexOf函数,返回值给end//如果,end不是-1,则说明后面还可能存在空格字符//否则,说明此次start到字符末尾已经没有空格字符while((end=str.indexOf(" ", start))!=-1){//API的substring函数,对返回值进行处理result = result + str.substring(start, end) + "%20";//start之前的部分已经处理完毕,下次处理从end+1开始索引查找空格字符start = end+1;}//考虑边界条件:需要加上最后一次没有找到空格字符剩余的子串return result + str.substring(start);}
}
在源字符串长度为n,替换字符串长度为m的情况下:
最坏空间复杂度为O(n*m)
如果indexOf()函数的复杂度总和为O(n),并且substring函数的复杂度为O(1)则:
最坏时间复杂度为O(n)
(以上如有错误,还望大神指教)
替换空格---剑指Offer相关推荐
- 《剑指offer》题目说明
剑指offer推荐刷题地址: Leetcode: https://leetcode-cn.com/problemset/lcof (官方授权) 牛客网:https://www.nowcoder.com ...
- C#LeetCode刷题-剑指Offer
本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...
- 力扣OJ 剑指 Offer(1-30)
目录 剑指 Offer 03. 数组中重复的数字 剑指 Offer 04. 二维数组中的查找 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 剑指 Offer 07. ...
- 《剑指offer》75题 C++详细题解
目录 简单: 剑指 Offer 03. 数组中重复的数字 map: unordered_map: 原地交换 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 出栈入栈 双 ...
- 剑指 Offer(第 2 版) 出现频率从高到低 已经完结100题
upd:12.10,陆陆续续刷了3周刷完了.比较简单 下面开始刷公司题库. 目录 直接A的题目: 剑指 Offer 03. 数组中重复的数字 剑指 Offer 09. 用两个栈实现队列 剑指 Offe ...
- 剑指offer刷题记录 python3 Java
剑指offer刷题记录 python3 Java 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 10- I. 斐波那契数列 剑指 Offer 03. 数组中重复的数字 [★]剑指 Of ...
- 剑指 offer 全记录
文章目录 排序 1.快排(时间复杂度O(nlogn),空间复杂度O(1)),下面的实现是一种原地排序的实现. 2.堆排 3.归并(时间复杂度一直是O(NlogN),空间复杂度O(n)) 4.插入 关于 ...
- 《LeetCode力扣练习》剑指 Offer 05. 替换空格 Java
<LeetCode力扣练习>剑指 Offer 05. 替换空格 Java 一.资源 题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输 ...
- 【剑指Offer面试题】 九度OJ1510:替换空格
c/c++ 中的字符串以"\0"作为结尾符.这样每一个字符串都有一个额外字符的开销. 以下代码将造成内存越界. char str[10]; strcpy(str, "01 ...
最新文章
- 六年级计算机word处理,六年级上信息技术教案Word大变身用Word制作网页河大版
- 从原理到代码,轻松深入逻辑回归模型!
- Spring Cloud 万字总结!
- thinkphp5.1+ 使用 Redis 缓存
- iOS - OC PList		数据存储
- Linux学习之如何在物理机上安装Linux发行版
- 总被审稿人提起的多重假设检验校正是什么?
- 谷歌chrome浏览器桌面提醒 webkitNotifications
- HDU2571 命运【动态规划DP】
- 「做点事」科技公司成立了!
- 虚拟机更改ip失败及没有虚拟网卡
- 《大数据之路-阿里巴巴大数据实践》第三章 数据同步
- 种花小游戏 随机化搜索
- excel提取数字的方法
- ping 快ping
- 某网友嵌入式求职经验总结
- Keras(三十四)Transformer模型代码实现
- Java最方便的安装和配置步骤
- 新年快乐吖大蕉的朋友们
- QApplication和QCoreApplication的区别