本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出
题目描述
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:"Mr%20John%20Smith"
示例 2:
输入:" ", 5
输出:"%20%20%20%20%20"
提示:
- 字符串长度在 [0, 500000] 范围内。
题目链接
题目分析
这道题的题目意思非常明确,就是给定我们一个实际字符串的长度为
l
e
n
g
t
h
length
length,之后将
l
e
n
g
t
h
length
length长度的字符串中的所有空格替换为%20
,这里简要叙述Java代码的思路,由于题目中说假定该字符串尾部有足够的空间存放新增字符,故我们可以将生成的新的字符串放到该字符串的尾部,最后截取就OK了,由于题目中建议Java使用字符数组,所以将所有的字符串操作换成字符数组
解题代码
Python
class Solution:
def replaceSpaces(self, S: str, length: int) -> str:
return S[:length].replace(" ", "%20")
Java
class Solution {
public String replaceSpaces(String S, int length) {
char[] arr = S.toCharArray();
int idx = arr.length-1;
for(int i=length-1; i>=0; i--){
if(arr[i] != ' '){
arr[idx --] = arr[i];
}else{
arr[idx --] = '0';
arr[idx --] = '2';
arr[idx --] = '%';
}
}
return new String(arr, idx+1, arr.length-1-idx);
}
}