SwiftLCS 1.3.4

SwiftLCS 1.3.4

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2019 年 4 月
SPM支持 SPM

Tommaso Madonia 维护。



SwiftLCS 1.3.4

SwiftLCS

Build Status Carthage compatible Pods Pod platforms

SwitLCS 为 Collection 增加了查找最长公共子序列中索引的扩展。

最长公共子序列(LCS)问题是在一组序列(通常是两个序列)中找到所有序列的共同子序列的问题。它与找到共同子串的问题不同:与子串不同,子序列不需要在原始序列中连续位置。

该项目基于 Objective-C 的实现 NSArray+LongestCommonSubsequence

📦安装

CocoaPods

CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器。它拥有超过一万个库,可以帮助您优雅地扩展项目。

将其添加到您的 Podfile

use_frameworks!

pod 'SwiftLCS'

Carthage

Carthage 构建您的依赖并提供二进制框架,同时您仍可完全控制项目结构和设置。

将其添加到您的 Cartfile

github "Frugghi/SwiftLCS"

Swift 包管理器

Swift 包管理器 Swift Package Manager 是一个用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,以自动化下载、编译和链接依赖项的过程。

SwiftLCS 添加到你的 Package.swift 依赖中

import PackageDescription

let package = Package(
    dependencies: [
        .Package(url: "https://github.com/Frugghi/SwiftLCS.git", majorVersion: 1, minor: 3)
    ]
)

手动

SwiftLCS.swift 包含到你的项目中。

📖文档

API 文档在此处可用 这里.

💻用法

导入框架

import SwiftLCS

字符串

let x = "abracadabra"
let y = "yabbadabbadoo"

let z = x.longestCommonSubsequence(y) // abadaba

数组

let x = [1, 2, 3, 4, 5, 6, 7]
let y = [8, 9, 2, 10, 4, 11, 6, 12]

let z = x.longestCommonSubsequence(y) // [2, 4, 6]

索引

let x = [1, 2, 3, 4, 5, 6, 7]
let y = [8, 9, 2, 10, 4, 11, 6, 12]

let diff = x.diff(y)
// diff.commonIndexes: [1, 3, 5]
// diff.addedIndexes: [0, 1, 3, 5, 7]
// diff.removedIndexes: [0, 2, 4, 6]

⚠️Objective-C

Objective-C 对象通过 isEquals: 方法进行比较,因此请确保实现正确,否则 SwiftLCS 将不会返回正确的索引。

📄许可证 LICENSE

SwiftLCS 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE