替换空格
来源:互联网 发布:对人工智能的看法400字 编辑:程序博客网 时间:2024/06/05 17:01
题目
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
- 从前往后替换:从前向后遍历,当插入新字符时,当前位置后面的字符全部需要移动位置,时间复杂度为O(n2)
- 从后向前替换:从后向前遍历,查找空格个数,可计算出新的字符串所占内存空间,申请足够容量的内存空间,进行复制替换,时间复杂度为O(n)
解答
public static String replaceSpace(StringBuffer str){ //原始字符串长度 int length=str.length(); int count=0; if(length<1) return ""; //计算空格个数 for(int i=0;i<length;i++){ if(str.charAt(i)==' ') count++; } //新的字符串长度 int newlength=length+2*count; str.setLength(newlength); while(count>0 && length>=1){ if(str.charAt(--length)==' '){ str.setCharAt(--newlength,'0'); str.setCharAt(--newlength,'2'); str.setCharAt(--newlength,'%'); count--; } else str.setCharAt(--newlength,str.charAt(length)); } return str.toString();}
考察点
- 不创建新的字符串内存空间
- 时间复杂度
0 0
- 空格替换
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 第二章:Python速成 2.1 基础内容
- Java开发规范精要
- 基于SharePoint和Project Server 2013上快速搭建回归测试环境
- 数据库优化方案
- js入门(8)-window对象
- 替换空格
- leetcode 506. Relative Ranks(easy)
- Lottie- 让Android动画实现更简单
- 实现时间复杂度为O(nlogn)的链表排序算法
- 记录一次spring+dubbo下的框架单元测试和所遇到的坑
- ARMv8 與 Linux的新手筆記
- 0 《 C++ Primer Plus(第五版)》学习
- Python 标准库简介concurrent.futures
- oracle命令杂记