题目链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
解答
因为是从一个字符(空格)变成三个字符("%20"),所以申请一个字符数组,长度为字符串长度的3倍。循环判断字符串中字符是否为空格,如果是将字符数组中的size、size+1、size+2三个位上分别赋值为’%’、‘2’、‘0’。
class Solution {
public String replaceSpace(String s) {
char[] newS = new char[s.length() * 3];
int size = 0;
for(int i=0;i<s.length();i++){
if(s.charAt(i) == ' ') {
newS[size++]='%';
newS[size++]='2';
newS[size++]='0';
}
else newS[size++] = s.charAt(i);
}
return new String(newS,0,size);
}
}
解答
class Solution {
public String replaceSpace(String s) {
StringBuilder newS = new StringBuilder();
for(Character c : s.toCharArray()) {
if(c == ' ') {
newS.append("%20");
}
else newS.append(c);
}
return newS.toString();
}
}