LinkCode-空格替换
2015-08-30 10:59
295 查看
空格替换
设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。
样例
对于字符串”Mr John Smith”, 长度为 13
替换空格之后的结果为”Mr%20John%20Smith”
注意
如果使用 Java 或 Python, 程序中请用字符数组表示字符串。
挑战
在原字符串(字符数组)中完成替换,不适用额外空间
问题分析:
在原字符串上进行操作,那么就是在检测到’ ‘时,把字符串数组i位置后面的元素右移两位.然后插入”%20”.
时间复杂杂度O(n);空间复杂度O(1);
代码:
设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。
样例
对于字符串”Mr John Smith”, 长度为 13
替换空格之后的结果为”Mr%20John%20Smith”
注意
如果使用 Java 或 Python, 程序中请用字符数组表示字符串。
挑战
在原字符串(字符数组)中完成替换,不适用额外空间
问题分析:
在原字符串上进行操作,那么就是在检测到’ ‘时,把字符串数组i位置后面的元素右移两位.然后插入”%20”.
时间复杂杂度O(n);空间复杂度O(1);
代码:
public class Solution { /** * @param string: An array of Char * @param length: The true length of the string * @return: The true length of new string */ public int replaceBlank(char[] string, int length) { int k=0; for (int i = 0; i < length+k; i++) { if(string[i]==' '){ for(int j= length+k-1;j>i;j--){ string[j+2]=string[j]; } k=k+2; string[i]='%'; string[i+1]='2'; string[i+2]='0'; } } return length+k; } }
相关文章推荐
- LinkCode-最长单词
- 我的openwrt学习笔记(十九):linux便捷开发命令之strace
- jsp的application session page作用域
- android studio 真机运行中文乱码
- SOAPvsREST_WebService
- java集合四种遍历方式
- IOS ViewController
- 软件测试的学习总结
- C语言一些常用字符串操作
- VS2010 C++ 学习笔记(六) this指针 const 指针 引用
- 文本框验证
- Hbase架构简介、实践
- Odoo Widget 开发教程(一)
- Markdown语法
- python中的传值和传引用
- 嘿,you
- Linux系统查找
- 【CF】【318div2C】【整数表示】【gcd】
- Apache+Tomcat集群配置
- 异构数据源海量数据交换工具-Taobao DataX 下载和使用