目录
第一题:01.03. URL化
第二题:1528. 重新排列字符串
第一题:01.03. URL化
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:"Mr%20John%20Smith"
示例 2:
输入:" ", 5
输出:"%20%20%20%20%20"
public static String replaceSpaces(String S, int length) {
// 将字符串转为数组
char[] chars = S.toCharArray();
// 计算空格数量
int spaceNum = 0;
for (int i = 0; i < length; i++) {
if(chars[i] == ' '){
spaceNum++;
}
}
// 构建新数组存放结果
char[] newResult = new char[length + spaceNum*2];
int index = 0;
// 遍历原字符数组
for (int i = 0; i < length; i++) {
if(chars[i] == ' '){
newResult[index++] = '%';
newResult[index++] = '2';
newResult[index++] = '0';
}else{
newResult[index++] = chars[i];
}
}
return new String(newResult);
}
第二题:1528. 重新排列字符串
给你一个字符串 s 和一个 长度相同 的整数数组 indices 。
请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。
返回重新排列后的字符串。
示例 3:
输入:s = "aiohn", indices= [3,1,4,2,0]
输出:"nihao"
public static String restoreString(String s, int[] indices) {
// 临时存储排序后的字符数组
char[] tempChar = new char[indices.length];
// 遍历 indices
for (int i = 0; i < indices.length; i++) {
tempChar[indices[i]] = s.charAt(i);
}
// 输出
return new String(tempChar);
}