1.题目
2.理解
可以从前往后依次遍历其内容,如果为’ ‘字符,做替换,但是每次后面的数据都要移动,使其时间复杂度变大,从前面不行,我们就可以从后面,改变移动的次数;
3.代码
package edu.liangman.offer;
/**
* Created by lm on 2016/12/31.
*/
public class ReplaceSpace {
//定义一个替换空格的方法
public static String replaceSpace(String src){
char[] chars = src.toCharArray();
int counter = 0;
for(int i=0;i<chars.length;i++){
if(chars[i]==' ')
++counter;
}
int len = chars.length+2*counter;
char[] newarr = new char[len];
System.arraycopy(chars,0,newarr,0
,chars.length);
int j = chars.length-1;
int k = newarr.length-1;
while(j>=0&&j!=k){
if(newarr[j]==' '){
newarr[k--] = '0';
newarr[k--] = '2';
newarr[k--] = '%';
}else{
newarr[k--]=newarr[j];
}
j--;
}
return new String(newarr);
}
public static void main(String[] args){
String str = " ";
System.out.println(replaceSpace(str));
}
}
4.运行结果