无需递归即可按字典顺序打印字符串的所有排列的 Python 程序
当需要在不使用递归的情况下按字典顺序打印字符串的所有排列时,定义了一种以字符串为参数的方法。它使用一个简单的“for”循环来遍历字符串元素并使用“while”条件来检查某些约束。
以下是相同的演示-
示例
from math import factorial
def lex_permutation(my_string):
for i in range(factorial(len(my_string))):
print(''.join(my_string))
i = len(my_string) - 1
while i > 0 and my_string[i-1] > my_string[i]:
i -= 1
my_string[i:] = reversed(my_string[i:])
if i > 0:
q = i
while my_string[i-1] > my_string[q]:
q += 1
temp_variable = my_string[i-1]
my_string[i-1]= my_string[q]
my_string[q]= temp_variable
my_string = 'bhd'
print("字符串是 ")
print(my_string)
my_string = list(my_string)
print("字符串是 being sorted")
my_string.sort()
lex_permutation(my_string)输出结果字符串是 bhd 字符串是 being sorted bdh bhd dbh dhb hbd hdb
解释
导入所需的包。
定义了一个名为“lex_permutation”的方法,它将字符串作为参数。
它使用阶乘方法并遍历字符串的阶乘。
比较反转的字符串和原始字符串。
一个简单的交换就完成了。
在方法之外,字符串被定义,并显示在控制台上。
然后对其进行排序。
通过传递此字符串来调用该方法。
输出显示在控制台上。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语