请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
C代码1:
char* replaceSpace(char* s){
int len = strlen(s);
int cnt = 0;
for (int i = 0; i < len; ++i) {
if (s[i] == ' ') {
++cnt;
}
}
char* str = malloc(sizeof(char) * (len + 2*cnt +1)); // 保存字符串末尾 '\0'
int j = 0;
for (int i = 0; i < len; ++i) {
if (s[i] != ' ') {
str[j++] = s[i];
} else {
str[j++] = '%';
str[j++] = '2';
str[j++] = '0';
}
}
str[j] = '\0';
return str;
}
Java代码1:双指针
class Solution {
public String replaceSpace(String s) {
int n = s.length();
char[] arr = new char[n * 3];
int j = 0;
for (int i = 0; i < n; ++i) {
char c = s.charAt(i);
if (c == ' ') {
arr[j++] = '%';
arr[j++] = '2';
arr[j++] = '0';
} else {
arr[j++] = c;
}
}
return new String(arr, 0, j);
}
}
- StringBuilder用法
(1)builder.append()
(2)builder.toString()
(3)builder.reverse()
(4)builder.insert()
(5)StringBuilder builder = new StringBuilder();
(6)StringBuilder builder = new StringBuilder(“abc”);
(7)StringBuilder builder = new StringBuilder(初始长度);
Java代码2:StringBuilder
class Solution {
public String replaceSpace(String s) {
StringBuilder res = new StringBuilder();
for(Character c : s.toCharArray())
{
if(c == ' ') {
res.append("%20");
} else {
res.append(c);
}
}
return res.toString();
}
}