问题一
面试题 01.03. URL化:https://leetcode-cn.com/problems/string-to-url-lcci/
思路:先排除空串或实际长度为0的情况,将字符串转化为字符数组,然后遍历数组,遇到空格时添加%20。
public String replaceSpaces(String S, int length) {
// 先排除空串或实际长度为0的情况
if (S == null || S.length() == 0 || length == 0) {
return "";
}
// 将字符串转化为字符数组,然后遍历数组,遇到空格时添加%20
char[] arr = S.toCharArray();
StringBuilder sb = new StringBuilder();
int strLength = 0;
for (char c : arr) {
if (c == ' ') {
sb.append("%20");
} else {
sb.append(c);
}
strLength++;
if (strLength >= length) {
break;
}
}
return sb.toString();
}
问题二
重新排列字符串:https://leetcode-cn.com/problems/shuffle-string/
思路:按题意直接求解即可。
public String restoreString(String s, int[] indices) {
char[] arr = s.toCharArray();
char[] newStrArr = new char[arr.length];
for (int i = 0; i < indices.length; i++) {
newStrArr[indices[i]] = arr[i];
}
return new String(newStrArr);
}
注:第四周才加入,补做第一周的习题。