亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

python求一個字符串的所有排列的實現方法

2020-02-15 21:24:52
字體:
來源:轉載
供稿:網友

題目描述:

設計一個程序,當輸入一個字符串時,要求輸出這個字符串的所有排列。
例如輸入字符串 abc,要求輸出由字母 a、b、c 所能排列出來的所有字符串 abc,acb,bac,bca,cab,cba。

方法:遞歸法

以字符串 abc 為例介紹對字符串進行全排列的方法。
(1) 首先固定第一個字符 a,然后對后面的兩個字符 b、c 進行全排列;
(2) 交換第一個字符與其后面的字符,即交換 a 與 b,然后對后面的兩個字符 a與c 進行全排列;
(3) 由于第二步交換了 a與b 破壞了字符串原來的順序,所以需要再次交換 a與b 使其恢復到原來的順序,然后交換第一個字符與第三個字符(交換a和c),接著固定第一個字符c,對后面的兩個字符 a與b 求全排列。
在對字符串求全排列的時候就可以采用遞歸的方式求解。


在使用遞歸求解的時候,要注意:
(1) 逐漸縮小問題的規模,并且可以用同樣的方法來求解子問題;
(2) 遞歸一定要有結束條件,否則會導致程序陷入死循環;

代碼實現:

#!/usr/bin/env python3# -*- coding: utf-8 -*-# @Time  : 2020/2/3 9:49# @Author : buu# @Software: PyCharm# @Blog  :https://blog.csdn.net/weixin_44321080def swap(str, i, j):  # 交換字符數組下標為i和j對應的字符  tmp = str[i]  str[i] = str[j]  str[j] = tmpdef permutation(str, start):  """  對字符串中的字符進行全排列  :param str: 待排序的字符串,list  :param start: 待排序的子字符串的首字符下標  :return:  """  if str == None or start < 0:    return  if start == len(str) - 1:    # 完成全排列后輸出當前排列的字符串    print(''.join(str),end=' ')  else:    i = start    while i < len(str):      # 交換start與i所在位置的字符      swap(str, start, i)      # 固定第一個字符,對剩余的字符進行全排列      permutation(str, start + 1)      # 還原start與i所在位置的字符      swap(str, start, i)      i += 1def permutation_transe(s):  str = list(s)  permutation(str, 0)if __name__ == '__main__':  s = 'abc'  permutation_transe(s)

結果:


算法性能分析:
假設這種方法所需的基本操作數為 f(n),f(n) = n×f(n-1) = …= n!
所以時間復雜度為O(n!);
空間復雜度為O(1);

引申:

如何去掉重復的排列?
當字符串中沒有重復的字符的時候,它的所有組合對應的字符串就沒有重復的情況;當時當字符串中有重復的字符的時候,例如 ‘baa',此時如果按照上面介紹的算法求全排列會有重復的字符串。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
青青草国产精品一区二区| 欧美一乱一性一交一视频| 国产亚洲一区二区在线| 国产精品专区h在线观看| 川上优av一区二区线观看| 亚洲天堂影视av| zzjj国产精品一区二区| www欧美xxxx| 韩国国内大量揄拍精品视频| 中文字幕欧美日韩| 疯狂蹂躏欧美一区二区精品| 久久久视频精品| 国产成人精品一区二区三区| 97国产一区二区精品久久呦| 久久国产天堂福利天堂| 国产一区二区在线免费视频| 久久91精品国产91久久久| 亚洲性视频网址| 91色在线观看| 九九热这里只有精品免费看| 疯狂做受xxxx欧美肥白少妇| 久久av.com| 色综合色综合网色综合| 成人黄色片在线| 亚洲女人天堂av| 国产精品美女www| 成人免费视频在线观看超级碰| 欧美色另类天堂2015| 日本欧美国产在线| 久久久中精品2020中文| 狠狠久久亚洲欧美专区| 亚洲大胆人体视频| 久久成人亚洲精品| 国产做受69高潮| 丝袜亚洲欧美日韩综合| 欧美精品在线看| 一道本无吗dⅴd在线播放一区| 日韩精品免费电影| 欧美日本高清一区| 成人亲热视频网站| 日韩中文字幕国产| 久久精品国产一区| 国产精品视频自拍| 国产精品日韩在线一区| 精品日本美女福利在线观看| 成人天堂噜噜噜| 91色精品视频在线| 一区二区三区四区视频| 欧美在线亚洲一区| 国产精品老牛影院在线观看| 懂色aⅴ精品一区二区三区蜜月| 国产成人拍精品视频午夜网站| 亚洲最大成人在线| 日韩最新免费不卡| 91精品视频免费| 国产国语刺激对白av不卡| 精品视频—区二区三区免费| 日韩欧美国产一区二区| 亚洲精品国偷自产在线99热| 一本一本久久a久久精品牛牛影视| 欧美华人在线视频| 欧美性69xxxx肥| 欧美丝袜一区二区三区| 精品视频在线播放色网色视频| 国产精品高清在线观看| 538国产精品一区二区免费视频| 国产一级揄自揄精品视频| 国产精品99久久久久久白浆小说| 国产成人精品久久| 日本精品性网站在线观看| 亚洲精品久久久久久久久久久久| 久久夜精品香蕉| 在线成人一区二区| 成人国产精品日本在线| 日本欧美爱爱爱| 97国产真实伦对白精彩视频8| 91亚洲午夜在线| 欧美影院久久久| 亚洲老头同性xxxxx| 中文字幕精品久久| 在线精品91av| 日韩在线中文字幕| 国产精品18久久久久久麻辣| 国产欧美日韩中文字幕在线| 日韩国产精品视频| 国产精品视频午夜| 久久99久久亚洲国产| 亚洲国产精品福利| 91高潮精品免费porn| 亚洲综合精品一区二区| 久久综合色88| 欧美性在线视频| 最近2019免费中文字幕视频三| 人人做人人澡人人爽欧美| 91精品综合视频| 黑人巨大精品欧美一区二区一视频| 国产精品一区二区久久精品| 欧美网站在线观看| 精品福利视频导航| 一二美女精品欧洲| 久久久亚洲影院你懂的| 日韩av观看网址| 91亚洲精华国产精华| 国产亚洲在线播放| 久久视频在线视频| 亚洲福利小视频| 国产亚洲精品美女久久久久| 亚洲国产精品小视频| 97国产真实伦对白精彩视频8| 色婷婷亚洲mv天堂mv在影片| 久久婷婷国产麻豆91天堂| 日本视频久久久| 欧美亚洲免费电影| 亚洲最大成人免费视频| 日韩在线一区二区三区免费视频| 国产在线一区二区三区| 日韩中文字幕久久| 色悠久久久久综合先锋影音下载| 亚洲社区在线观看| 中文字幕精品一区久久久久| 亚洲男人天堂手机在线| 亚洲黄色片网站| 久久久久久久久91| 亚洲精品免费网站| 欧美一区二区三区免费视| 欧美日韩中文字幕在线视频| 亚洲人成电影网| 国产欧美精品久久久| 国产精品国产亚洲伊人久久| 懂色aⅴ精品一区二区三区蜜月| 麻豆国产精品va在线观看不卡| 最近2019年手机中文字幕| 久久国产精品亚洲| 欧美日韩亚洲精品内裤| 欧美成人精品一区| 日韩视频在线观看免费| 日韩中文有码在线视频| 亚洲男人天堂手机在线| 日韩在线视频观看正片免费网站| 成人日韩av在线| 国产一区二区三区视频| 欧美国产乱视频| 亚洲视屏在线播放| 日韩中文字幕国产| 97视频人免费观看| 精品无人区太爽高潮在线播放| 久久久爽爽爽美女图片| 最近2019年好看中文字幕视频| 亚洲男人av电影| 91精品国产综合久久男男| 亚洲大尺度美女在线| 精品久久久久国产| 日韩视频在线免费观看| 在线观看欧美视频| 久久精品国产亚洲| 中文字幕精品视频| 亚洲视频在线免费看| 欧美激情视频一区二区| 久久成人综合视频| 国产精品久久久久久久久借妻| 日韩av手机在线看| 国产成人精品免高潮在线观看| 欧美孕妇毛茸茸xxxx| 亚洲精品99999|