题目:
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:"Mr%20John%20Smith"
示例 2:
输入:" ", 5
输出:"%20%20%20%20%20"
代码实现:
class Solution {标签:yyds,URL,金典,lastIndex,--,int,20%,str,preIndex From: https://blog.51cto.com/u_13321676/5897214
public String replaceSpaces(String S, int length) {
// 边界条件
if(S == null || S.length() == 0) {
return S;
}
char[] str = S.toCharArray();
// 双指针位置
int preIndex = length - 1;
int lastIndex = preIndex;
for(int i=0; i < length; i++) {
if(str[i] == ' ') {
lastIndex +=2;
}
}
// 替换字符串
while(lastIndex != preIndex) {
if(str[preIndex] != ' ') {
// 复制
str[lastIndex] = str[preIndex];
lastIndex--;
preIndex--;
} else {
// 替换 0 2 % ; pre-1; last - 3
str[lastIndex --] = '0';
str[lastIndex --] = '2';
str[lastIndex --] = '%';
preIndex --;
}
}
return String.valueOf(str).trim();
}
}