js版本替換字串空格的幾種方法

2021-10-02 18:14:20 字數 897 閱讀 7115

簡單版

function replacespace(str)

簡單版2

function replacespace(str)

3.如果明確要求只能在源字串上做替換,那麼以上兩種方法均不合格。在源字串上修改,則要求遍歷字串,直接的思路是遍歷到空格,就先把後面的字串往後移動2位,然後寫入'%20'

但是這樣每個字元最少需要移動1次(在乙個空格的前提下),時間複雜度為o(n²)

更加完美的做法是先計算字串的空格的數量,得到替換後的字串長度,然後提前預留空間,從後往前遍歷,所有字串只移動一次。

雖然道理是這個道理,雖然我們知道我們可以像陣列一樣的通過下標訪問某個字串元素,但是卻不能像陣列那樣進行字串的修改(陣列可以動態擴容)。所以假定源字串為陣列['w', 'e', ' ', 'a', 'r', 'e', ' ', 'h', 'a', 'p', 'p', 'y']

var str = ['w', 'e', ' ', 'a', 'r', 'e', ' ', 'h', 'a', 'p', 'p', 'y']

function replacespace(str)

} start = str.length - 1

end = str.length + 2 * spacenum - 1

for (let i = str.length - 1; i >= 0; i--) else

start--

} return str

}console.log(replacespace(str))

字串替換空格

點 抽象問題簡化問題 題意 乙個字串,比如 aaa baea erwe dsa dsa f a 替換其中的空格字元為 20 劍指offer面試題4 思路 這個問題的點在於,如果正常從頭到尾替換的話,每乙個被替換空格,它後面的全部字串都需要做整體移動 所以要設法想出,怎麼能夠減少字串移動 非空格字元需...

替換空格(字串)

思路一 利用string類的replaceall方法 public class solution 思路二 將字串轉換為字元陣列 建立乙個新的stringbuffer的物件,遍歷字元陣列,將不為空格的字元直接存入 當遇到空格時,存入 20 public class solution return st...

字串 替換空格

方法 從後往前替換,先求出字串總長度 空格數 新字串長度,然後兩個指標分別指向原始字串末尾和新字串末尾,依次替換,遇到空格時則替換為 0 2 include includevoid replaceblank char string,int length int newlength originall...