mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 23:28:29 +08:00
更新 1047.删除字符串中的所有相邻重复项 排版格式修复
This commit is contained in:
@ -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 仅由小写英文字母组成。
|
||||||
|
|
||||||
# 思路
|
## 算法公开课
|
||||||
|
|
||||||
《代码随想录》算法视频公开课:[栈的好戏还要继续!| LeetCode:1047. 删除字符串中的所有相邻重复项](https://www.bilibili.com/video/BV12a411P7mw),相信结合视频在看本篇题解,更有助于大家对本题的理解。
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[栈的好戏还要继续!| LeetCode:1047. 删除字符串中的所有相邻重复项](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 {
|
||||||
|
Reference in New Issue
Block a user