笔试题分析-2

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

注:这题很简单,我也忘了这是哪的笔试题,可能是剑指OFFER的?

思路,没有思路,找到空格,干掉它就行了。。可能在具体细节里面有一些要注意的点。单说一个替换,在JAVA里面有个replace函数不知大家好不好意思用hhh。。。说到替换,就有两种思路:

1.搞一新的字符串。2.在原有字符串上修改。

给出我的思路:

 1 public class Solution {
 2     public String replaceSpace(StringBuffer str) {
 3         StringBuffer buffer=new StringBuffer();
 4         if(str!=null){
 5             for(int i=0;i<str.length();i++){
 6                 char ch=str.charAt(i);
 7                 if(ch==' '){
 8                     buffer.append("%20");
 9                 }else{
10                     buffer.append(ch);
11                 }
12             }
13         }
14         return buffer.toString();
15     }
16 }
运行时间: 33 ms 占用内存:503K
用了StringBuffer,主要是考虑到大小毕竟不确定。
当然,也可以在原有字符串上修改,但是这必须考虑效率的问题,大概考虑一下,从前往后替换,每次操作后续字符串都得后移。
这样效率显然要慢很多。如果提前算好空间,然后从后往前找空格,这样貌似快很多。这个思路没有写,大家可以上网查一查,应该会有。
前面做这些题时都没有标上出处,真的烦。。牛客网又静态文件加载出错,感觉是DNS的问题,也没有解决,后面做题注释加上这些细节吧
posted @ 2017-03-15 21:02  -zzmher  阅读(126)  评论(0编辑  收藏  举报