用python实现19. 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba
时间: 2024-05-08 14:16:50 浏览: 136
思路:
将字符串转化为字符数组,使用递归的方式进行排列,每次固定一个字符,然后对剩下的字符进行排列。
代码实现:
```python
def permutation(s):
if not s:
return []
if len(s) == 1:
return list(s)
res = []
for i in range(len(s)):
for j in permutation(s[:i] + s[i+1:]):
res.append(s[i] + j)
return res
s = input("请输入一个字符串:")
res = permutation(s)
res.sort()
for i in res:
print(i)
```
示例输出:
```
请输入一个字符串:abc
abc
acb
bac
bca
cab
cba
```
相关问题
Python .输入一个字符串,计算字符串长度。 2.输入两个字符串,查看第一个字符串是否是第二个字符串的子串。 3.对已有字符串排序。 4在已知字符串后连接新字符串。
Python是一种高级、解释型、通用型编程语言,以其简洁的语法和丰富的库而广受欢迎。以下是关于您提到的几个操作的简要说明:
1. 计算字符串长度:在Python中,你可以使用内置函数`len()`来获取字符串的长度。例如,`length = len(s)`,其中`s`是你的字符串。
```python
s = "Hello, World!"
string_length = len(s)
print("字符串长度:", string_length)
```
2. 判断子串:可以使用`in`关键字检查一个字符串是否包含在另一个字符串中。比如:
```python
main_str = "Hello, Python!"
substr = "Python"
if substr in main_str:
print(f"{substr} 是 {main_str} 的子串")
else:
print(f"{substr} 不是 {main_str} 的子串")
```
3. 字符串排序:Python中的字符串是不可变的,因此不能直接排序。如果你需要按照字典序排序列表中的字符串元素,可以先将它们转换为列表,然后用`sorted()`函数:
```python
unsorted_list = ["World", "Python", "Hello"]
sorted_list = sorted(unsorted_list)
print("排序后的列表:", sorted_list)
```
如果你想对字符串内部的字符进行排序,可以先转为list再操作:
```python
s = "dcba"
sorted_chars = sorted(list(s))
new_string = ''.join(sorted_chars)
print("排序后的字符串:", new_string)
```
4. 连接字符串:Python提供`+`运算符用于连接字符串,也可以使用`join()`方法。例如:
```python
str1 = "Hello"
str2 = " "
str3 = "World"
combined_str = str1 + str2 + str3
print("合并后的字符串:", combined_str)
```
Python输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如 输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
可以使用递归的方法求解。每次固定一个字符,将剩余的字符进行全排列,然后将固定的字符与全排列结果进行拼接。具体实现如下:
```python
def permutation(s):
if len(s) <= 1:
return [s]
res = []
for i in range(len(s)):
# 固定一个字符
c = s[i]
# 求剩余字符的全排列
rest = s[:i] + s[i+1:]
rest_permutation = permutation(rest)
# 将固定字符与全排列结果进行拼接
for p in rest_permutation:
res.append(c + p)
return res
s = input("请输入一个字符串:")
res = permutation(s)
res.sort()
for r in res:
print(r)
```
这里需要注意的是,最终输出的结果需要按字典序排序。可以使用Python内置的`sort()`方法进行排序。
阅读全文