更新 1047.删除字符串中的所有相邻重复项 排版格式修复

This commit is contained in:
jinbudaily
2023-07-20 14:53:33 +08:00
parent a1ef2d03f6
commit 70888c2b60

View File

@ -5,8 +5,6 @@
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p> <p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
> 匹配问题都是栈的强项 > 匹配问题都是栈的强项
# 1047. 删除字符串中的所有相邻重复项 # 1047. 删除字符串中的所有相邻重复项
@ -30,11 +28,13 @@
* 1 <= S.length <= 20000 * 1 <= S.length <= 20000
* S 仅由小写英文字母组成。 * S 仅由小写英文字母组成。
# 思路 ## 算法公开课
《代码随想录》算法视频公开课:[栈的好戏还要继续!| LeetCode1047. 删除字符串中的所有相邻重复项](https://www.bilibili.com/video/BV12a411P7mw),相信结合视频看本篇题解,更有助于大家对本题的理解。 **[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[栈的好戏还要继续!| LeetCode1047. 删除字符串中的所有相邻重复项](https://www.bilibili.com/video/BV12a411P7mw),相信结合视频看本篇题解,更有助于大家对本题的理解**
## 正题 ## 思路
### 正题
本题要删除相邻相同元素,相对于[20. 有效的括号](https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html)来说其实也是匹配问题20. 有效的括号 是匹配左右括号,本题是匹配相邻元素,最后都是做消除的操作。 本题要删除相邻相同元素,相对于[20. 有效的括号](https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B7.html)来说其实也是匹配问题20. 有效的括号 是匹配左右括号,本题是匹配相邻元素,最后都是做消除的操作。
@ -105,7 +105,7 @@ public:
* 时间复杂度: O(n) * 时间复杂度: O(n)
* 空间复杂度: O(1),返回值不计空间复杂度 * 空间复杂度: O(1),返回值不计空间复杂度
## 题外话 ### 题外话
这道题目就像是我们玩过的游戏对对碰,如果相同的元素挨在一起就要消除。 这道题目就像是我们玩过的游戏对对碰,如果相同的元素挨在一起就要消除。
@ -125,8 +125,7 @@ public:
## 其他语言版本 ## 其他语言版本
### Java
Java
使用 Deque 作为堆栈 使用 Deque 作为堆栈
```Java ```Java
@ -203,7 +202,8 @@ class Solution {
} }
``` ```
Python ### Python
```python ```python
# 方法一,使用栈 # 方法一,使用栈
class Solution: class Solution:
@ -239,7 +239,7 @@ class Solution:
return ''.join(res[0: slow]) return ''.join(res[0: slow])
``` ```
Go ### Go
```go ```go
func removeDuplicates(s string) string { func removeDuplicates(s string) string {
@ -258,7 +258,7 @@ func removeDuplicates(s string) string {
} }
``` ```
javaScript: ### JavaScript:
法一:使用栈 法一:使用栈
@ -295,7 +295,7 @@ var removeDuplicates = function(s) {
}; };
``` ```
TypeScript ### TypeScript
```typescript ```typescript
function removeDuplicates(s: string): string { function removeDuplicates(s: string): string {
@ -318,7 +318,7 @@ function removeDuplicates(s: string): string {
}; };
``` ```
C: ### C:
方法一:使用栈 方法一:使用栈
```c ```c
@ -371,7 +371,8 @@ char * removeDuplicates(char * s){
} }
``` ```
Swift ### Swift
```swift ```swift
func removeDuplicates(_ s: String) -> String { func removeDuplicates(_ s: String) -> String {
var stack = [Character]() var stack = [Character]()
@ -386,8 +387,8 @@ func removeDuplicates(_ s: String) -> String {
} }
``` ```
### C#:
C#:
```csharp ```csharp
public string RemoveDuplicates(string s) { public string RemoveDuplicates(string s) {
//拿字符串直接作为栈,省去了栈还要转为字符串的操作 //拿字符串直接作为栈,省去了栈还要转为字符串的操作
@ -405,8 +406,8 @@ public string RemoveDuplicates(string s) {
} }
``` ```
### PHP:
PHP:
```php ```php
class Solution { class Solution {
function removeDuplicates($s) { function removeDuplicates($s) {
@ -431,8 +432,8 @@ class Solution {
} }
``` ```
### Scala:
Scala:
```scala ```scala
object Solution { object Solution {
import scala.collection.mutable import scala.collection.mutable
@ -455,7 +456,7 @@ object Solution {
} }
``` ```
rust: ### Rust:
```rust ```rust
impl Solution { impl Solution {