Swift
来源:互联网 发布:淘宝优惠券怎么用不了 编辑:程序博客网 时间:2024/05/21 18:40
因为项目需求,要用到全排列,在此记录下来。全排列公式: 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 }
阅读全文
0 0
- SWIFT
- swift
- Swift
- Swift
- swift
- Swift
- swift
- Swift
- swift
- swift
- swift
- Swift
- swift
- swift
- Swift
- swift
- swift
- swift ??
- springboot整合dubbo
- iOS 图片擦除
- 深入理解Java中类加载的流程和机制
- Core Location定位
- android 性能分析之常用adb命令adb shell am start -W
- Swift
- [JavaWeb]jsp图片ajax异步上传,利用ajaxfileupload
- Java基础集合Map
- C语言变长数组data[0]【总结】
- 网络运维实现方案
- leetcode 110. Balanced Binary Tree DFS
- 如何使用jquery 动态修改元素的 background-image?
- Ubuntu 8.04安装VMware tools
- View系列(1)--自定义一个ListView的下拉刷新