题解 | #替换空格#
替换空格
http://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
public String replaceSpace (String s) {
// write code here
//整体思路:创建一个新的字符串数组,挨个往里塞
//时间O(n),空间O(n)
int len = s.length();
int space_num = 0;
//先遍历一遍,以获取字符串数组中的空格数,进而创建指定长度的字符数组
for(int i = len-1; i >= 0; i--){
if(s.charAt(i) == ' '){
space_num++;
}
}
char[] str_lat = new char[len+space_num*2];
int pri = s.length()-1;
int lat = s.length()+space_num*2-1;
System.out.print(str_lat);
//只要原字符串和新字符数组的索引没有同时达到-1,就继续循环
while(pri != lat || pri >= 0){
if(s.charAt(pri) == ' '){
str_lat[lat--] = '0';
str_lat[lat--] = '2';
str_lat[lat--] = '%';
}
else{
str_lat[lat--] = s.charAt(pri);
}
pri--;
System.out.print(str_lat);
}
System.out.print(str_lat);
return String.valueOf(str_lat);
}
}