js——替換字符串中的空格

題目背景:

在網絡編程中,如果URL參數中含有特殊字符,如空格、#等,可導致服務器端無法獲取正確的參數值。解決方案:將這些符號轉換成瀏覽器可以識別的字符,轉換規則是在%後面添加特殊字符ASCII碼的十六進制數。

題目描述:

請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。

這道題的解決方案:可以把問題想的簡單或複雜,如下,這裏是簡單的解決方案

function replaceSpace(str)
{
/*
問題1:替換字符串,是在原來的字符串上做替換,還是新開闢一個字符串做替換!
問題2:在當前字符串替換,,可能覆蓋修改在該字符串後面的內存。再一個怎麼替換才更有效率!!!
      從前往後替換,後面的字符要不斷往後移動,要多次移動,效率低下。O(n)
      從後往前,先計算需要多少空間,然後從後往前移動,每個字符只移動一次,效率更高一點。O(n2) 雙指針解決
*/
    //問題一的解決方案:開闢一個新的字符串conStr進行替換
    var conStr = str.replace(/\s/g,"%20");
    return conStr;
}

思考:這道題應該不是簡單的考察replace函數。面試官可能不僅僅想聽的是這樣的解決方案。空格替換是用1個字符(空格)替換成了3個字符(%20),每次替換,都會新增2個字符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章