python非遞歸全排列實現(xiàn)方法
剛剛開始學習python,當前看到了函數(shù)這一節(jié)。結合數(shù)組操作,寫了個非遞歸的全排列生成。原理是插入法,也就是在一個有n個元素的已有排列中,后加入的元素,依次在前,中,后的每一個位置插入,生成n+1個新的全排列。因為Python切割數(shù)組或者字符串,以及合并比較方便,所以,程序會節(jié)省很多代碼。
def getArrayInsertCharToStr(STR,CHAR): arr =[] s_len = len(STR) index =0 while index <= s_len: #分割字符串 arr.append(STR[:index]+CHAR+STR[index:s_len]) index = index + 1 return arr def getArrayInsertCharToArray(array,CHAR): index = 0 re_array = [] while index < len(array): re_array = re_array + getArrayInsertCharToStr(array[index],CHAR) index = index + 1 return re_array def getPermutation(STR): resultArr = [STR[0]] for item in STR[1:]: resultArr = getArrayInsertCharToArray(resultArr,item) return resultArr print(getPermutation('abc'))
以上這篇python非遞歸全排列實現(xiàn)方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python 操作sqlite數(shù)據(jù)庫的方法
sqlite的官網(wǎng) sqlite.org/index.html SQLite 作為一個SQL數(shù)據(jù)庫引擎,是由C語言實現(xiàn)的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數(shù)據(jù)庫,在移動設備中使用非常廣泛且方便。本文講解如何使用python操作sqlite數(shù)據(jù)庫2021-06-06Python如何根據(jù)時間序列數(shù)據(jù)作圖
這篇文章主要介紹了Python如何根據(jù)時間序列數(shù)據(jù)作圖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05對python創(chuàng)建及引用動態(tài)變量名的示例講解
今天小編就為大家分享一篇對python創(chuàng)建及引用動態(tài)變量名的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python實現(xiàn)動態(tài)添加屬性和方法操作示例
這篇文章主要介紹了Python實現(xiàn)動態(tài)添加屬性和方法操作,結合實例形式分析了Python類中屬性與方法的動態(tài)添加、綁定、刪除等相關操作技巧,需要的朋友可以參考下2018-07-07python網(wǎng)絡編程學習筆記(四):域名系統(tǒng)
當我們在上網(wǎng)的時候,通常輸入的是網(wǎng)址,其實這就是一個域名,而我們計算機網(wǎng)絡上的計算機彼此之間只能用IP地址才能相互識別2014-06-06OpenCV基礎HSV顏色空間*args與**kwargs滑動條傳參問題
這篇文章主要介紹了OpenCV基礎中HSV顏色空間*args與**kwargs滑動條傳參問題的詳細解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10