【LeetCode】面試題 01.03. URL化(Java)
URL化。編寫一種方法,將字串中的空格全部替換為%20。假定該字串尾部有足夠的空間存放新增字元,並且知道字串的“真實”長度。(注:用Java實現的話,請使用字元陣列實現,以便直接在陣列上操作。)
解法一
使用字元陣列,也是題目要求的做法。
class Solution {
public String replaceSpaces(String S, int length) {
char[] ch = new char[length * 3];
int index = 0;
for (int i = 0; i < length; i++) {
char c = S.charAt(i);
if (c == ' ') {
ch[index++] = '%';
ch[index++] = '2';
ch[index++] = '0';
} else {
ch[index] = c;
index++;
}
}
return new String(ch, 0, index);
}
}
解法二
用String的API
class Solution {
public String replaceSpaces(String S, int length) {
return S.substring(0, length).replaceAll(" ", "%20");
}
}
效率太差,不推薦,不過做的時候第一反應就是用這個。
解法三
使用StringBuilder
class Solution {
public String replaceSpaces(String S, int length) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
char ch = S.charAt(i);
if (ch == ' ') {
sb.append("%20");
continue;
}
sb.append(ch);
}
return sb.toString();
}
}
這個是優化第二種解法的,不過也不是題目要求的,瞭解即可。
相關文章
- 常見面試題 - URL 解析面試題
- java面試題Java面試題
- leetcode 面試題02.08.環路檢測 JavaLeetCode面試題Java
- 【Java面試】Java常見IO面試題!Java面試題
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- JAVA面試題 java部分Java面試題
- 100道JAVA面試題+JAVA面試題參考答案Java面試題
- LeetCode 面試題01.06LeetCode面試題
- 【Java面試題】Java面試之多執行緒!Java面試題執行緒
- Java SSM面試題JavaSSM面試題
- Java面試題解析Java面試題
- JAVA面試題(8)Java面試題
- java 面試題1Java面試題
- Java面試題(一)Java面試題
- Java 面試題集Java面試題
- java面試問題Java面試
- Java面試題全集Java面試題
- 阿里java面試題阿里Java面試題
- Java集合---面試題Java面試題
- Java面試題收集Java面試題
- Java面試試題Java面試
- java面試題大全Java面試題
- 面試題-JAVA反射面試題Java反射
- 面試題-JAVA IO面試題Java
- 面試題--Java反射面試題Java反射
- java面試一日一題:如何優化sqlJava面試優化SQL
- JAVA面試題-CORE JAVA部分Java面試題
- leetcode 455題 javaLeetCodeJava
- 【Java面試】 Javascript常見面試題!JavaScript面試題
- 【Java面試】Servlet常見面試題!JavaServlet面試題
- 面試題解析001:Java物件建立及初始化面試題Java物件
- java經典面試題Java面試題
- Java大廠面試題Java面試題
- Java面試題整理《上》Java面試題
- Java Collection集合面試題Java面試題
- 中高階Java面試題Java面試題
- Java面試題全集(下)Java面試題
- Java併發面試題Java面試題