python非遞歸全排列實現(xiàn)方法
剛剛開始學(xué)習(xí)python,當(dāng)前看到了函數(shù)這一節(jié)。結(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)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 操作sqlite數(shù)據(jù)庫的方法
sqlite的官網(wǎng) sqlite.org/index.html SQLite 作為一個SQL數(shù)據(jù)庫引擎,是由C語言實現(xiàn)的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數(shù)據(jù)庫,在移動設(shè)備中使用非常廣泛且方便。本文講解如何使用python操作sqlite數(shù)據(jù)庫2021-06-06
Python如何根據(jù)時間序列數(shù)據(jù)作圖
這篇文章主要介紹了Python如何根據(jù)時間序列數(shù)據(jù)作圖,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
對python創(chuàng)建及引用動態(tài)變量名的示例講解
今天小編就為大家分享一篇對python創(chuàng)建及引用動態(tài)變量名的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python實現(xiàn)動態(tài)添加屬性和方法操作示例
這篇文章主要介紹了Python實現(xiàn)動態(tài)添加屬性和方法操作,結(jié)合實例形式分析了Python類中屬性與方法的動態(tài)添加、綁定、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(四):域名系統(tǒng)
當(dāng)我們在上網(wǎng)的時候,通常輸入的是網(wǎng)址,其實這就是一個域名,而我們計算機網(wǎng)絡(luò)上的計算機彼此之間只能用IP地址才能相互識別2014-06-06
python在一個范圍內(nèi)取隨機數(shù)的簡單實例
在本篇內(nèi)容里小編給大家分享了關(guān)于python在一個范圍內(nèi)取隨機數(shù)的簡單實例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-08-08
OpenCV基礎(chǔ)HSV顏色空間*args與**kwargs滑動條傳參問題
這篇文章主要介紹了OpenCV基礎(chǔ)中HSV顏色空間*args與**kwargs滑動條傳參問題的詳細解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10

