剑指 Offer 05. 替换空格
难度:简单
今天参加招行网络科技提前批的面试,做到了这道题,然后赶紧来刷一遍加深印象。我好菜啊哭哭
题目描述
解题思路
先算出空格的个数,然后算出新字符的长度,然后从后往前构建新字符串。如果是空格,就依次替换成%20;如果是正常字符,就添加到后面。
/*
* 剑指 Offer 05. 替换空格
* 2020/6/22
*/
public String replaceSpace(String s) {
if(s.length() == 0)
return s;
int blanknum = 0,n = s.length();
for(int i = 0;i < n;i++) {
if(s.charAt(i) == ' ') {
blanknum++;
}
}
int newnum = n + 2*blanknum;
char[] sn = new char[newnum];
while(newnum >= 0) {
if(s.charAt(n) == ' ') {
sn[newnum--] = '0';
sn[newnum--] = '2';
sn[newnum--] = '%';
}else {
sn[newnum--] = s.charAt(n);
}
n--;
}
return new String(sn);
}