剑指-替换空格
来源:互联网 发布:欧洲难民感恩 知乎 编辑:程序博客网 时间:2024/06/14 02:41
题目:
请实现一个函数,把数组中的每个空格替换成%20,例如:输入bie zhi hua,则输出bie%20zhi%20hua
算法思路:
先遍历一次字符串,统计出字符数组中空格数量,并计算出替换后的总长度。
然后,从字符数组末尾开始复制和替换。由于所有的字符只移动一次,所以这个算法的时间效率为O(n)
public static void main(String[] args) { char[] str = {'b', 'i', 'e', ' ', 'z', 'h', 'i', ' ', 'h', 'u', 'a'}; char[] newStr = replaceBlack(str); System.out.println(newStr);}private static char[] replaceBlack(char[] str) { int blackCount = 0; for (int i = 0; i < str.length; i++) { if (str[i] == ' ') { blackCount++; } } int originLength = str.length; int newLength = str.length + blackCount * 2; char[] newStr = new char[newLength]; int indexOrigin = originLength - 1; int indexNew = newLength - 1; while (indexOrigin >= 0 && indexNew >= 0) { if (str[indexOrigin] == ' ') { newStr[indexNew--] = '0'; newStr[indexNew--] = '2'; newStr[indexNew--] = '%'; } else { newStr[indexNew--] = str[indexOrigin]; } indexOrigin--; } return newStr;}
0 0
- [剑指offer]替换空格
- [剑指offer]替换空格
- 剑指offer:替换空格
- 替换空格--《剑指offer》
- 剑指Offer:替换空格
- 【剑指offer】替换空格
- 剑指Offer4 替换空格
- 《剑指Offer》--替换空格
- 剑指offer--替换空格
- 【剑指offer】替换空格
- 【剑指offer】空格替换
- 剑指offer-替换空格
- 剑指offer:替换空格
- [剑指offer]替换空格
- 《剑指offer》替换空格
- 剑指offer:替换空格
- 【剑指Offer】替换空格
- 【剑指offer】-替换空格
- 贪吃蛇self2
- [扫描线 set] BZOJ 4561 [JLoi2016]圆的异或并
- ButterKnife Android studio初试:配置环境,解决空指针问题
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- git 详解 (1)
- 剑指-替换空格
- 吐槽NIO中的slip方法
- 在Unreal里面设置一个角色可跑动
- Android ViewPager加Fragment实现滑动或者点击页面切换
- 贪吃蛇self3
- 五种ARP学习
- mock代码片断1
- spring session 做session共享
- Android OpenGL入门