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)
|
||||
- [长度最小的子数组](./minimum_size_subarray_sum.md)
|
||||
|
||||
# 字符串
|
||||
|
||||
- [替换空格](./substitute_spaces.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