diff --git a/docs/notes/5. 替换空格.md b/docs/notes/5. 替换空格.md index 9751f710..9f73a077 100644 --- a/docs/notes/5. 替换空格.md +++ b/docs/notes/5. 替换空格.md @@ -1,6 +1,8 @@ # 5. 替换空格 -[NowCoder](https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +## 题目链接 + +[牛客网](https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) ## 题目描述 @@ -17,13 +19,15 @@ Output: ## 解题思路 -在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),因此当遍历到一个空格时,需要在尾部填充两个任意字符。 +① 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),所以当遍历到一个空格时,需要在尾部填充两个任意字符。 -令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和 P2 从后向前遍历,当 P1 遍历到一个空格时,就需要令 P2 指向的位置依次填充 02%(注意是逆序的),否则就填充上 P1 指向字符的值。 +② 令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和 P2 从后向前遍历,当 P1 遍历到一个空格时,就需要令 P2 指向的位置依次填充 02%(注意是逆序的),否则就填充上 P1 指向字符的值。从后向前遍是为了在改变 P2 所指向的内容时,不会影响到 P1 遍历原来字符串的内容。 -从后向前遍是为了在改变 P2 所指向的内容时,不会影响到 P1 遍历原来字符串的内容。 +③ 当 P2 遇到 P1 时(P2 <= P1),或者遍历结束(P1 < 0),退出。 -

+ + +

```java public String replaceSpace(StringBuffer str) { diff --git a/notes/5. 替换空格.md b/notes/5. 替换空格.md index e0669ac0..6adf072f 100644 --- a/notes/5. 替换空格.md +++ b/notes/5. 替换空格.md @@ -1,6 +1,8 @@ # 5. 替换空格 -[NowCoder](https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) +## 题目链接 + +[牛客网](https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github) ## 题目描述 @@ -17,13 +19,15 @@ Output: ## 解题思路 -在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),因此当遍历到一个空格时,需要在尾部填充两个任意字符。 +① 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),所以当遍历到一个空格时,需要在尾部填充两个任意字符。 -令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和 P2 从后向前遍历,当 P1 遍历到一个空格时,就需要令 P2 指向的位置依次填充 02%(注意是逆序的),否则就填充上 P1 指向字符的值。 +② 令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和 P2 从后向前遍历,当 P1 遍历到一个空格时,就需要令 P2 指向的位置依次填充 02%(注意是逆序的),否则就填充上 P1 指向字符的值。从后向前遍是为了在改变 P2 所指向的内容时,不会影响到 P1 遍历原来字符串的内容。 -从后向前遍是为了在改变 P2 所指向的内容时,不会影响到 P1 遍历原来字符串的内容。 +③ 当 P2 遇到 P1 时(P2 <= P1),或者遍历结束(P1 < 0),退出。 -

+ + +

```java public String replaceSpace(StringBuffer str) { diff --git a/notes/pics/c9714e03-eb43-48e8-b1b0-1fb620a036c8.gif b/notes/pics/c9714e03-eb43-48e8-b1b0-1fb620a036c8.gif new file mode 100644 index 00000000..b5ed6300 Binary files /dev/null and b/notes/pics/c9714e03-eb43-48e8-b1b0-1fb620a036c8.gif differ diff --git a/notes/pics/f7c1fea2-c1e7-4d31-94b5-0d9df85e093c.gif b/notes/pics/f7c1fea2-c1e7-4d31-94b5-0d9df85e093c.gif new file mode 100644 index 00000000..a4a4a4eb Binary files /dev/null and b/notes/pics/f7c1fea2-c1e7-4d31-94b5-0d9df85e093c.gif differ