JS替換空格

請實現(xiàn)一個函數(shù),把字符串 s 中的每個空格替換成"%20"。

  • 示例 :

輸入:s = "We are happy."
輸出:"We%20are%20happy."
限制:0 <= s 的長度 <= 10000

  • 解題思路

這道題的解法非常多,利用很多原生 apiapi 就能輕松解決,例如:

  • repleace/replaceAll
  • encodeURIComponent
  • split/join
    亦或者直接暴破求解等等...
    但是我們清楚,這些肯定都不是被考察的目的,我們需要做的,就是如何在手動實現(xiàn)的過程中,盡量的減少復雜度!
    因為 JS 中字符串無法被修改,一旦給字符串變量重新賦值,就要花費時間和空間去重新新建一個字符串,從而增加了復雜度!
    所以我們這里采用數(shù)組來進行操作,流程如下:
    1.將字符串轉(zhuǎn)換為數(shù)組,然后統(tǒng)計其中的空格數(shù)量。
    2.根據(jù)空格數(shù)量和原有字符串有效字符長度,計算出剛好存放替換后的字符長度的數(shù)組。
    3.創(chuàng)建兩個指針,一個指數(shù)組末尾,一個指字符串有效位的末尾,實現(xiàn)原地修改。
    值得注意的是:數(shù)組遍歷,一定要從后往前遍歷,避免從前往后,造成字符被修改,導致錯誤!

方法一

/**
 * @param {string} s
 * @return {string}
 */
var replaceSpace = function(s) {
    return s.replaceAll(" ","%20");
};
replaceSpace("We are happy.");

方法二

/**
 * @param {string} s
 * @return {string}
 */
var replaceSpace = function(s) {
    //return encodeURI(s);
    return encodeURIComponent(s);
};
replaceSpace("We are happy.");

方法三

/**
 * @param {string} s
 * @return {string}
 */
var replaceSpace = function(s) {
    var arr = s.split(" ");
    return arr.join("%20");
};
replaceSpace("We are happy.");

方法四

/**
 * @param {string} s
 * @return {string}
 */
var replaceSpace = function(s) {
    s = s.split("");
    let oldLen = s.length;
    let spaceCount = 0;
    for (let i = 0; i < oldLen; i++) {
        if (s[i] === ' ') spaceCount++;
    }
    s.length += spaceCount * 2;
    for (let i = oldLen - 1, j = s.length - 1; i >= 0; i--, j--) {
        console.log(s[i],s[j]);
        if (s[i] !== ' ') s[j] = s[i];
        else {
            s[j - 2] = '%';
            s[j - 1] = '2';
            s[j] = '0';
            j -= 2;
        }
    }
    return s.join('');
};
replaceSpace("We are happy.");
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 題目描述 請實現(xiàn)一個函數(shù),把字符串中的每個空格替換成%20。 例如:輸入We are happy.,則輸出We%2...
    靈活的胖墩閱讀 295評論 0 1
  • 題目描述 請實現(xiàn)一個函數(shù),將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經(jīng)...
    沒了提心吊膽的稗子閱讀 243評論 0 0
  • 題目 請實現(xiàn)一個函數(shù),把字符串中的每個空格都換成%20。例如:輸入"We are happy",則輸出“We%20...
    Longshihua閱讀 719評論 0 1
  • 1.題目描述: 請實現(xiàn)一個函數(shù),把字符串中的每個空格替換成%20。例如,輸入“we are happy.”,輸出"...
    金錫圭璧閱讀 105評論 0 0
  • 題目描述 請實現(xiàn)一個函數(shù),將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經(jīng)...
    Jackwh_L閱讀 152評論 0 0

友情鏈接更多精彩內(nèi)容