diff --git "a/lcof/\351\235\242\350\257\225\351\242\23005. \346\233\277\346\215\242\347\251\272\346\240\274/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23005. \346\233\277\346\215\242\347\251\272\346\240\274/README.md" index e6645dd4d9324..7dfe2b2905155 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23005. \346\233\277\346\215\242\347\251\272\346\240\274/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23005. \346\233\277\346\215\242\347\251\272\346\240\274/README.md" @@ -58,6 +58,8 @@ class Solution { ### **JavaScript** +- 使用字符串内置方法 + ```js /** * @param {string} s @@ -67,6 +69,37 @@ var replaceSpace = function (s) { return s.split(" ").join("%20"); }; ``` +- 使用两个指针 + +```js +/** + * @param {string} + * @return {string} + */ +var replaceSpace = function(s) { + s = s.split(""); + let emptyNum = 0; + for (let i = 0; i < s.length; i++) { + if (s[i] === " ") { + emptyNum++; + } + } + let p1 = s.length - 1; + let p2 = p1 + 2 * emptyNum; + while (p1 >= 0 && p2 > p1) { + if (s[p1] === " ") { + s[p2] = "0"; + s[--p2] = "2"; + s[--p2] = "%"; + } else { + s[p2] = s[p1]; + } + p1--; + p2--; + } + return s.join(""); +}; +``` ### **Go**