其实每个人都是幸福的,只不过你的幸福往往在别人眼中。力扣力扣:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
题目:请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
输入:s = "We are happy." 输出:"We%20are%20happy."
方法一:JS的split和join
/**
* @param {string} s
* @return {string}
*/
var replaceSpace = function(s) {
if(s.length>=0&&s.length<=1000){
return s.split(" ").join("%20");
}
return ""
};
方法二:正则表达式
var replaceSpace = function(s) {
return s.replace(/ /g, "%20");
};
正则表达式语法: /正则表达式主体/修饰符(可选)
正则表达式参考链接:https://www.runoob.com/js/js-regexp.html
方法三:常规数组操作
由于每次替换从 1 个字符变成 3 个字符,使用字符数组可方便地进行替换。建立字符数组地长度为 s 的长度的 3 倍,这样可保证字符数组可以容纳所有替换后的字符。依次拿字符串中的字符,如果字符为空格就依次放入“% 2 0”,否则就直接放入拿出的字符。最后重新拿到数组中前面有数字的部分。 解题详细思路:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/solution/mian-shi-ti-05-ti-huan-kong-ge-by-leetcode-solutio/
class Solution {
public String replaceSpace(String s) {
int length = s.length();
char[] array = new char[length*3];
int size = 0;
for(int i = 0; i < length; i++){
char c = s.charAt(i);
if(c == ' '){
array[size++] = '%';
array[size++] = '2';
array[size++] = '0';
}else{
array[size++] = c;
}
}
String result = new String(array, 0, size);
return result;
}
}
方法四:双指针