7-3 字符串的全排列
时间: 2024-02-20 21:59:05 浏览: 90
字符串全部排列
字符串的全排列可以通过递归实现。具体实现步骤如下:
1. 如果字符串为空或者只有一个字符,那么它的全排列就是它本身。
2. 否则,将第一个字符和后面的所有字符依次交换,得到新的字符串,并递归求新字符串的全排列。
3. 固定第一个字符,递归求后面所有字符的全排列。
4. 重复上述步骤,直到所有字符都被固定为止。
以下是代码实现:
```python
def permutation(s):
def dfs(index):
if index == n:
res.append(''.join(s))
return
for i in range(index, n):
s[index], s[i] = s[i], s[index]
dfs(index + 1)
s[index], s[i] = s[i], s[index]
n = len(s)
res = []
s = list(s)
dfs(0)
return res
```
例如,对于字符串 "abc",调用 `permutation("abc")` 将返回其全排列 `["abc", "acb", "bac", "bca", "cab", "cba"]`。
阅读全文