您的位置:首页 > 移动开发 > Swift

Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)

2017-06-13 14:59 1136 查看
因为项目需求,要用到全排列,在此记录下来。全排列公式: f(n) = n! (n>=0) 

此demo为,输入一个字符串,遍历字符串中每个字符,并组成一个新的字符串。通过递归算法,得到所有字符组成的字符串的所有可能。

static func allArrangementAlgorithm(text: String) -> [String] {
var allPermutation:[String] = []
guard text.characters.count == 1 else {
for n in 0..<text.characters.count {
let singleString: String = (text as NSString).substring(with: NSRange(location: n, length: 1))
let deleteSingleString: NSMutableString = NSMutableString.init(string: text)
deleteSingleString.deleteCharacters(in: NSRange(location: n, length: 1))
let sub:[String] = allArrangementAlgorithm(text: deleteSingleString as String)
for (_, value) in sub.enumerated() {
let strOfCombine = (singleString as String)+value
allPermutation.append(strOfCombine)
}
}
return allPermutation
}
allPermutation.append(text)
return allPermutation
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐