Substitute Spaces
This commit is contained in:
parent
80ee14486c
commit
e37f2531d7
13
include/offer_05.hpp
Normal file
13
include/offer_05.hpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef OFFER_05_HPP
|
||||||
|
#define OFFER_05_HPP
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
string replaceSpace(string s);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -4,6 +4,10 @@
|
|||||||
- [移除元素](./remove_elements.md)
|
- [移除元素](./remove_elements.md)
|
||||||
- [长度最小的子数组](./minimum_size_subarray_sum.md)
|
- [长度最小的子数组](./minimum_size_subarray_sum.md)
|
||||||
|
|
||||||
|
# 字符串
|
||||||
|
|
||||||
|
- [替换空格](./substitute_spaces.md)
|
||||||
|
|
||||||
# 经典代码
|
# 经典代码
|
||||||
|
|
||||||
- [合并两个有序链表](./merge_two_sorted_linked_lists.md)
|
- [合并两个有序链表](./merge_two_sorted_linked_lists.md)
|
||||||
|
15
notes/src/substitute_spaces.md
Normal file
15
notes/src/substitute_spaces.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# 替换空格
|
||||||
|
|
||||||
|
[Leetcode](https://leetcode.cn/problems/ti-huan-kong-ge-lcof/)
|
||||||
|
|
||||||
|
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
|
||||||
|
|
||||||
|
示例 1:
|
||||||
|
|
||||||
|
> 输入:s = "We are happy."
|
||||||
|
>
|
||||||
|
> 输出:"We%20are%20happy."
|
||||||
|
|
||||||
|
![demo](https://tva1.sinaimg.cn/large/e6c9d24ely1go6qmevhgpg20du09m4qp.gif)
|
||||||
|
|
||||||
|
对于很多数组填充类问题,都可以先计算出扩展后数组的长度,然后从后往前双指针。
|
24
src/offer_05.cpp
Normal file
24
src/offer_05.cpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "offer_05.hpp"
|
||||||
|
|
||||||
|
string Solution::replaceSpace(string s) {
|
||||||
|
int len = s.length();
|
||||||
|
int cnt{0};
|
||||||
|
for (int i{0}; i < len; ++i) {
|
||||||
|
if (s[i] == ' ') {
|
||||||
|
s.push_back(' ');
|
||||||
|
s.push_back(' ');
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
len = s.length();
|
||||||
|
for (int fast = len - 1, slow = len - 1 - 2 * cnt; fast >= 0; --slow) {
|
||||||
|
if (s[slow] == ' ') {
|
||||||
|
s[fast--] = '0';
|
||||||
|
s[fast--] = '2';
|
||||||
|
s[fast--] = '%';
|
||||||
|
} else {
|
||||||
|
s[fast--] = s[slow];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
10
tests/offer_05.cpp
Normal file
10
tests/offer_05.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include "offer_05.hpp"
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
TEST(Offer05, Case1) {
|
||||||
|
string s{"We are happy."};
|
||||||
|
string expected{"We%20are%20happy."};
|
||||||
|
Solution solution;
|
||||||
|
EXPECT_EQ(solution.replaceSpace(s), expected);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user