Open songyy5517 opened 2 years ago
思路1:字符串数组
思路2:StringBuilder截取
复杂度分析
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 10:44-10:59
* @param s string字符串
* @return string字符串
*/
public String replaceSpace (String s) {
// write code here
// 分析:遍历字符串
// 1. 异常
if (s == null || s.length() == 0)
return "";
// 2. 统计空格个数
int num_sp = 0;
for (int i = 0; i < s.length(); i++){
if (s.charAt(i) == ' ')
num_sp ++;
}
// 3. 为新字符串开辟空间
char[] new_str = new char[s.length() + 2 * num_sp];
// 4. 从后往前遍历字符串
int idx = new_str.length - 1;
for (int i = s.length() - 1; i >= 0; i--){
if (s.charAt(i) == ' '){
new_str[idx] = '0';
new_str[idx-1] = '2';
new_str[idx-2] = '%';
idx -= 3;
}
else {
new_str[idx] = s.charAt(i);
idx --;
}
}
return new String(new_str);
}
}
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 10:44-10:59
* @param s string字符串
* @return string字符串
*/
public String replaceSpace (String s) {
// write code here
// 分析:遍历字符串
// 1. 异常
if (s == null || s.length() == 0)
return "";
// 2. 创建StringBuilder
StringBuilder new_str = new StringBuilder();
// 4. 遍历字符串
for (int i = 0; i < s.length(); i++){
if (s.charAt(i) == ' ')
new_str.append("%20");
else
new_str.append(s.charAt(i));
}
return new_str.toString();
}
}
2020-05-02 2023/1/5 2023/11/27
new String(char_arr)
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
分析 这道题考察的是字符串遍历。我们首先扫描字符串中的空格,然后根据空格数量创建新字符数组,再将字符串中的字符转换到新字符数组中即可。