-1
的排列任何人都可以提出具體的算法來找到一個給定的字符串的不同排列,除了遞歸技術算法找到一個字符串
的排列任何人都可以提出具體的算法來找到一個給定的字符串的不同排列,除了遞歸技術算法找到一個字符串
你可以找到如何使用遞歸做在here。
然後,您可以移植此代碼以使用堆棧,而不是依賴遞歸所使用的線程堆棧。
解決這個問題,如果你不想使用遞歸,可以通過動態規劃,這樣的事情:
list = originalString.split('')
index = (0,0)
list = [""]
for iteration n in 1 to y:
index = (index[1], len(list))
for string s in list.subset(index[0] to end):
for character c in originalString:
list.add(s + c)
如果你想迭代,而不是遞歸,注意每一個解決方案,可以寫成遞歸,可以用Amnon Shochot在下面的答案中提到的迭代方式編寫。所以我建議你寫下遞歸算法,然後找出迭代解決方案。 – Aravind 2015-04-05 11:47:57